JavaScript正则表达式

mac2024-04-18  30

今天正式的来学习正则表达式…   对于正则,可能大部分的新手都搞不懂正则表达式,我也一样。

/正则表达式主体/修饰符(可选) var patt = /runoob/i /runoob/i 是一个正则表达式。 runoob 是一个正则表达式主体 (用于检索) i 是一个修饰符 (搜索不区分大小写)

1.什么是正则表达式:     用来搜索、匹配一系列符合特定语法规则的字符串的处理工具(一个强大的字符串处理工具)。   用途:进行特定字符或字符串的搜索;替换掉字符串中的指定字符或字符串;验证字符串是否符合需求。

var str = '123a3asd1s2'; //var re = /\d+/g; //提取数字的正则表达式 //var arr = str.match(re); //使用正则的语法 var arr = str.match(/\d+/g); console.log(arr);

以上代码提取出了字符串里的数字。    2.正则表达式的书写规则:       1)字面量写法: /abc/   优点:简洁方便 缺点:不支持变量

var re = /abc/ //类似于数组 var arr = []

2)构造函数形式: new RegExp(“abc”);   优点:支持变量 缺点:需要注意字符转义规则

var re2 = new RegExp('abc') //类似于数组 var arr = new Array(1,2,3);

3.正则表达式修饰符

修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。

4.正则表达式模式  方括号用于查找某个范围内的字符:

修饰符描述[abc]查找方括号之间的任何字符。[0-9]查找任何从 0 至 9 的数字。(xly)查找任何以l分隔的选项。

元字符是拥有特殊含义的字符:

元字符描述\d查找数字。\s查找空白字符。\b匹配单词边界。\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

量词:

量词描述n+匹配任何包含至少一个 n 的字符串。n*匹配任何包含零个或多个 n 的字符串。n?匹配任何包含零个或一个 n 的字符串。

4.使用 test()     test() 方法是一个正则表达式方法。test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var patt = /e/; patt.test("The best things in life are free!");

字符串中含有 “e”,所以该实例输出为:

true

你可以不用设置正则表达式的变量,以上两行代码可以合并为一行:

/e/.test("The best things in life are free!")

5.使用 exec()     exec() 方法是一个正则表达式方法。exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。 以下实例用于搜索字符串中的字母 “e”:

/e/.exec("The best things in life are free!");

字符串中含有 “e”,所以该实例输出为:

e

6.使用字符串方法     在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。   search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。   search() 方法使用正则表达式:   search() 方法使用字符串   replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。   replace() 方法使用正则表达式:   replace() 方法使用字符串:

表单验证

/*是否带有小数*/ function isDecimal(strValue ) { var objRegExp= /^\d+\.\d+$/; return objRegExp.test(strValue); } /*校验是否中文名称组成 */ function ischina(str) { var reg=/^[\u4E00-\u9FA5]{2,4}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } /*校验是否全由8位数字组成 */ function isStudentNo(str) { var reg=/^[0-9]{8}$/; /*定义验证表达式*/ return reg.test(str); /*进行验证*/ } /*校验电话码格式 */ function isTelCode(str) { var reg= /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/; return reg.test(str); } /*校验邮件地址是否合法 */ function IsEmail(str) { var reg=/^\w+@[a-zA-Z0-9]{2,10}(?:\.[a-z]{2,4}){1,3}$/; return reg.test(str); }
最新回复(0)