js正则表达式常用函数详解(续)

正则表达式对象的方法

1、test,返回一个 Boolean 值,它指出在被查找的字符串中是否存在模式。如果存在则返回 true,否则就返回 false。
2、exec,正则表达式模式在字符串中运行查找,并返回包含该查找结果的一个数组。
3、compile,把正则表达式编译为内部格式,从而执行得更快。
正则表达式对象的属性

1、source,返回正则表达式模式的文本的复本。只读。
2、lastIndex,返回字符位置,它是被查找字符串中下一次成功匹配的开始位置。
3、input ($_),返回执行规范表述查找的字符串。只读。
4、lastMatch ($&),返回任何正则表达式搜索过程中的最后匹配的字符。只读。
5、lastParen ($+),如果有的话,返回任何正则表达式查找过程中最后括的子匹配。只读。
6、leftContext ($`),返回被查找的字符串中从字符串开始位置到最后匹配之前的位置之间的字符。只读。
7、rightContext ($'),返回被搜索的字符串中从最后一个匹配位置开始到字符串结尾之间的字符。只读。
String对象一些和正则表达式相关的方法

1、match,找到一个或多个正则表达式的匹配。
2、replace,替换与正则表达式匹配的子串。
3、search,检索与正则表达式相匹配的值。
4、split,把字符串分割为字符串数组。
案例1 test方法测试

//test方法,测试字符串,符合模式时返回true,否则返回false var re = /he/;//最简单的正则表达式,将匹配he这个单词 var str = "he"; console.log(re.test(str));//true str = "we"; console.log(re.test(str));//false str = "HE"; console.log(re.test(str));//false,大写,如果要大小写都匹配可以指定i标志(i是ignoreCase或case-insensitive的表示) re = /he/i; console.log(re.test(str));//true str = "Certainly!He loves her!"; console.log(re.test(str));//true,只要包含he(HE)就符合,如果要只是he或HE,不能有其它字符,则可使用^和$ re = /^he/i;//脱字符(^)代表字符开始位置 console.log(re.test(str));//false,因为he不在str最开始 str = "He is a good boy!"; console.log(re.test(str));//true,He是字符开始位置,还需要使用$ re = /^he$/i;//$表示字符结束位置 console.log(re.test(str));//false str = "He"; console.log(re.test(str));//true //当然,这样不能发现正则表达式有多强大,因为我们完全可以在上面的例子中使用==或indexOf re = /\s/;// \s匹配任何空白字符,包括空格、制表符、换页符等等 str= "user Name";//用户名包含空格 console.log(re.test(str));//true str = "user Name";//用户名包含制表符 console.log(re.test(str));//true re=https://www.jb51.net/^[a-z]/i;//[]匹配指定范围内的任意字符,这里将匹配英文字母,不区分大小写 str="variableName";//变量名必须以字母开头 console.log(re.test(str));//true str="123abc"; console.log(re.test(str));//false

案例2 exec测试

var haoVersion = "Haorooms 8";//其中的8表示系统主版本号 var re = /^[a-z]+\s+\d+$/i; //+号表示字符至少要出现1次,\s表示空白字符,\d表示一个数字 console.log(re.test(haoVersion));//true,但我们想知道主版本号 //另一个方法exec,返回一个数组,数组的第一个元素为完整的匹配内容 re=https://www.jb51.net/^[a-z]+\s+\d+$/i; arr = re.exec(haoVersion); console.log(arr[0]);//将haoVersion完整输出,因为整个字符串刚好匹配re //我只需要取出数字 re=https://www.jb51.net/\d+/; var arr = re.exec(haoVersion); console.log(arr[0]);//8 //exec返回的数组第1到n元素中包含的是匹配中出现的任意一个子匹配 re=https://www.jb51.net/^[a-z]+\s+(\d+)$/i;//用()来创建子匹配 arr =re.exec(haoVersion); console.log(arr[0]);//整个haoVersion,也就是正则表达式的完整匹配 console.log(arr[1]);//8,第一个子匹配,事实也可以这样取出主版本号 console.log(arr.length);//2 haoVersion = "Haorooms 8.10";//取出主版本号和次版本号 re = /^[a-z]+\s+(\d+)\.(\d+)$/i;//.是正则表达式元字符之一,若要用它的字面意义须转义 arr = re.exec(haoVersion); console.log(arr[0]);//完整的haoVersion console.log(arr[1]);//8 console.log(arr[2]);//10

案例3 String对象的一些和正则表达式有关的方法

1、关于replace,我之前的一片博客专门写了。还可以传参数。

2、其他操作

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjpjyg.html