JavaScript正则表达式 RegExp

来源:互联网 发布:泰勒吉他代购 知乎 编辑:程序博客网 时间:2024/05/21 19:22

JavaScript正则表达式 RegExp

  • 创建RegExp
/ab+c/i;new RegExp('ab+c', 'i');new RegExp(/ab+c/, 'i');

  • 字符类别
字符 含义 . 匹配任意单个字符,但是换行符除外 \d 等价于[0-9] \D 等价于[^0-9] \w 等价于 [A-Za-z0-9_] \W 等价于 [^A-Za-z0-9_] \s 匹配一个空白符 \S 匹配一个非空白符
  • 字符集合
字符 含义 [xyz] 等价于[x-z] [^xyz] 等价于[^x-z]
  • 边界
边界 含义 ^ 匹配输入字符串的开始 $ 匹配输入字符串的结尾
  • 数量词
字符 含义 x* 匹配前面的模式x 0或多次 x+ 匹配前面的模式x 1或多次 x? 匹配前面的模式x 0或1次 x*? 最小可能匹配 x* x+? 最小可能匹配 x+ x(?=y) 只有后面紧跟着y时,才匹配x x(?!y) 只有后面变不是紧跟着y时,才匹配 x y x{n} 前面的模式x 连续出现n次时匹配 x{n,} 前面的模式x 连续出现至少n次时,才匹配 x{n,m} 前面的模式x 连续出现至少n次,至多m次时,才匹配
  • 属性
RegExp.prototypeRegExp.lengthRegExp.lastIndex

  • 方法
RegExp.toString()RegExp.exec() //在目标字符串中执行一次正则匹配操作RegExp.test() //测试当前正则是否能匹配目标文件

  • 字符串正则表达式
str.match(regexp);str.search(regexp)

  • 实例
//(first last)-->(last,first)var re = /(\w+)\s(\w+)/;var str = "John Smith";var newstr = str.replace(re, "$2, $1");print(newstr); // Smith John
// 多行匹配var str = "Please yes\nmake my day!";str.match(/yes.*day/);// Returns nullstr.match(/yes[^]*day/);// Returns 'yes\nmake my day'
// 使用stickyvar text = "First line\nsecond line";var regex = /(\S+) line\n?/y;var match = regex.exec(text);print(match[1]);  // prints "First"print(regex.lastIndex); // prints 11var match2 = regex.exec(text);print(match2[1]); // prints "Second"print(regex.lastIndex); // prints "22"var match3 = regex.exec(text);print(match3 === null); // prints "true"
// 使用Unicode字符var text = "Образец text на русском языке";var regex = /[\u0400-\u04FF]+/g;var match = regex.exec(text);print(match[1]);  // prints "Образец"print(regex.lastIndex);  // prints "7"var match2 = regex.exec(text);print(match2[1]);  // prints "на" [did not print "text"]print(regex.lastIndex);  // prints "15"

0 0
原创粉丝点击