js正则表达式学习笔记(2)

修饰符是放在//之外的,不会出现在两条/线之间
i 不区分大小写
g 全局匹配,找到所有匹配,而不是找到第一个之后就停止
m 多行匹配

六、 用于模式匹配的String对象的方法
方法一: search() 检索与之匹配的位置
参数:一个正则表达式
返回:第一个与之匹配的子串的起始位置,如果找不到匹配的子串,返回-1
例如:

<script> "javascript".search(/script/i); //返回值为4   </script>

注:① 如果search()的参数不是正则表达式,则会通过RegExp构造函数将他转换成正则表达式
      ② search()不支持全局检索
方法二: replace() 执行检索与替换操作
参数:第一个-->正则表达式
   第二个-->要进行替换的字符串(也可是一个函数,该函数能动态的计算替换字符串)
注:① 支持g,
    正则表达式中设置了g:所有与模式匹配的子串都将替换成第二个参数指定的字符串
      正则表达式中没设置g:只替换所匹配的第一个子串
  ② 如果第一个参数不是正则,而是一个字符串时,replace()将直接搜索这个字符串

例如:将所有不区分大小写的javascript都替换成大小写正确的JavaScript

<script> var str = "javascript,javascript,javascript,javaScript"; alert(str.replace(/javascript/gi,"JavaScript")); //JavaScript,JavaScript,JavaScript,JavaScript </script>

方法三 : match()
参数:正则表达式
返回:由匹配结果组成的数组
支持g
实例一:

<script> var math = "1 plus 2 equals 3".match(/\d+/g); console.log(math); // ["1", "2", "3"] console.log(typeof math); //object </script>  

实例二:

<script> var math = "1 plus 2 equals 3".match(/\d/); console.log(math); // ["1", index: 0, input: "1 plus 2 equals 3"] console.log(typeof math); //object </script>

注意:
给字符串的math()传入一个非全局的正则表达式:
匹配情况:只检索第一个匹配
返回值:数组
    数组第一个元素:所匹配的字符串
    数组第二个元素:正则表达式中用圆括号括起来的子表达式,返回的数组有两个属性-->index和input

方法四: split()
返回值:数组
分隔符:split()的参数
例如:

<script> var str= "1,2,3,4,5,6,7,8".split(','); console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"] </script>

参数是正则表达式时(可以指定分隔符,允许两边可以留任意多的空白符)
返回:用以调用它的字符串拆分为一个子字符串组成的数组

<script> var str= "1,2,3,4,5,6,7,8".split(/\s*,\s*/); //允许两边留任意多的空白符 console.log(str); //["1", "2", "3", "4", "5", "6", "7", "8"] </script>

七、RegExp 对象

RegExp()构造函数:
参数:两个字符串参数
第一个:正则表达式的主体部分(两个斜杠之间的文本)
第二个:(可选)指定正则表达式的修饰符(g,i,m这三者或这三者的组合)
注意:无论是字符串直接量还是正则表达式都使用/字符作为转译字符的前缀
例如:

var zipCode = new RegExp('\\d{5}','g'); //全局匹配字符串中的5个数字,注意这里是//而不是/

以上就是为大家整理的关于js正则表达式学习笔记,希望对大家学习js正则表达式有所帮助。

您可能感兴趣的文章:

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

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