乐趣区

关于javascript:javaScript正则表达式

JavaScript RegExp 对象

RegExp:是正则表达式(regular expression)的简写
正则表达式用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的弱小工具

语法:

var patt=new RegExp(pattern,modifiers);

或者

var patt=/pattern/modifiers;

其中:
pattern:代表正则表达式
modifiers:代表修饰符

修饰符:

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

案例(匹配 hello、疏忽大小写):

var str = "HELLO world!";
var patt1 = /hello/i;
document.write(str.match(patt1));

输入:

HELLO

留神:当应用构造函数发明正则对象时,须要惯例的字符本义规定(在后面加反斜杠 \)。如,匹配 \w 时须要加 \, 以下是等价的:

// + 示意匹配一次或屡次
var re = new RegExp("\\w+");
var re = /\w+/;

方括号
用于查找某个范畴内的字符:

[abc]     查找方括号之间的任何字符。[^abc]    查找任何不在方括号之间的字符。[0-9]     查找任何从 0 至 9 的数字。[a-z]     查找任何从小写 a 到小写 z 的字符。[A-Z]     查找任何从大写 A 到大写 Z 的字符。[A-z]     查找任何从大写 A 到小写 z 的字符。[adgk]    查找给定汇合内的任何字符。[^adgk]   查找给定汇合外的任何字符。

元字符
领有非凡含意的字符

.    查找单个字符,除了换行和行结束符。\w    查找数字、字母及下划线。\W    查找非单词字符。\d    查找数字。\D    查找非数字字符。\s    查找空白字符。\S    查找非空白字符。\b    匹配单词边界。\B    匹配非单词边界。\0    查找 NULL 字符。\n    查找换行符。\f    查找换页符。\r    查找回车符。\t    查找制表符。\v    查找垂直制表符。

量词
定义正则匹配的次数

?      匹配 0 次或 1 次
+      匹配 1 次或屡次
*      匹配 0 次或屡次
{n}    匹配 n 次
{n,}   匹配 n 次或 n 次以上
{n,m}  匹配 n 次到 m 次

RegExp 对象办法

  • test()
    搜寻字符串指定的值,依据后果返回 true 或 false

      var patt1=new RegExp("a");
      document.write(patt1.test("abc"));

    输入:

      true
    
  • exec()
    检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null

      var patt1=new RegExp("a");
      document.write(patt1.exec("abc"));

    输入:

      a
    
  • toString()
    返回正则表达式的字符串

      var patt = new RegExp("RUNOOB", "g");
      var res = patt.toString();
      document.write(res);

    输入:

      /RUNOOB/g
    

反对正则表达式的 String 对象的办法

  • search()
    检索匹配正则表达式的值的个数

      var str="Visit Runoob!"; 
      var n=str.search("Runoob");
      document.write(n);

    输入:

      6
    
  • match()
    匹配满足正则表达式的值,如果没有找到任何匹配的文本,返回 null。否则,它将返回一个数组

      var str="abcabcdabcde"; 
      var n=str.match(/abc/g);
      document.write(n);

    输入:

      [abc,abc,abc]
  • replace()
    替换与正则表达式匹配的子串。

      var str="hello world!";
      var n=str.replace("hello","你好");
      document.write(n);

    输入:

      你好 world!
  • split()
    把字符串宰割为字符串数组。

      var str="2022-1-1";
      var n=str.split("-");
      document.write(n);

    输入:

      [2022,1,1]
退出移动版