JS 正则表达式

一 正则表达式(regular expression)用于匹配字符串,是字符模式的对象。
RegExp对象语法:
    1   var patt=new RegExp(pattern,modifiers);
  • (pattern(模式) 描述了表达式的模式
  •    modifiers(修饰符) 用于指定全局匹配、区分大小写的匹配和多行匹配)
 
2 字面量创建正则表达式:var expression =/ pattern / flags;
  • 注意:当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的:
var re = new RegExp("\\w+");
var re = /\w+/;
 
一    字符类(九种):    
.    任意字符(除了\n换行的字符);
[   ]   限定字符范围,只对单字符而言;
数字:(d:data)
\d  [0~9];
\D [^0~9];
字符:(s:space)
\s   所有不可见字符(如:空格,tab, 回车换行);
\S  所有可见字符;
\w  [0~9a~zA~Z]:字符,字符包括字母、数字、下划线:(w:word)
\W  [^0~9a~zA~Z]:非字符
 
二    次数(四种):  
?   0个或一个;
*  0个或多个;
+   一个或多个;
{m,n}  大于等于m,小于等于n;
{n}   前面一个字符或者()内的内容出现n次;
{n,}    前面一个字符或者()内的内容至少出现n次;
 
三 分组和引用(四种):
  |          左边的或右边。
()      括号中的是一个组。
(?:)组合
 \n         引用第n个带圆括号的子表达式 。
 
五  正则表达式的修饰符:
i   执行不区分大小写的匹配。
g(global) 执行全局匹配。
m (multiple)多行匹配,^匹配一行的开头和字符串的开头,$匹配行的结束和字符串的结束
^ 以那个字符开头,$ 以那个字符结尾。
 
六 正则表达式的方法
1. exec
exec() 方法用于检索字符串中的正则表达式的匹配。 如果字符串中有匹配的值返回该匹配值,否则返回 null。
语法:RegExpObject.exec(string)
 
例如:(/Hello word!/g).exec("Hello word!")
["Hello word!"]
(/Heo word!/g).exec("Hello word!")
null
 
2. test
 一个在字符串中测试是否匹配的RegExp方法,它返回true或false。
例如:写法第一种:(/java/i).test("javaScript")
true
           写法第二种:
var pattern=new RegExp(‘java’,'i’); pattern.test("JaaScript")
false
 
七 字符串的方法
1. match    
        一个在字符串中执行查找匹配的String方法,它返回一个数组或者在未匹配到时返回null。
例如:('aaAAB12345').match(/\d{2,4}/g)
["1234"]
 
2. search
        一个在字符串中测试匹配的String方法,它返回匹配到第一个字符位置索引,或者在失败时返回-1。类似于indexOf()方法。
例如:("javaScript").search(/script/i);
4
("javaScript").search(/qwscript/i);
-1
 
3. replace
      replace( )方法用以执行检索与替换操作,其中第一个参数是一个正则表达式,第二个参数是要进行替换的字符串。(https://blog.csdn.net/LinBilin_/article/details/57094602)
  例如: "javascript is not javaLive".replace(/java/g,'zmm')
             "zmmscript is not zmmLive"
 
4. split
         一个使用正则表达式或者一个固定字符分隔一个字符串,并将分隔后的子字符串存储到数组中的String方法
例如:("123,4567,879").split(",")
["123", "4567", "879"]
 
 
 
八  锚字符:
(?=script):替换后缀是script前面的java:
 
 
(?!script):替换后缀不是script的前面的java:
 
 
 
推荐阅读:
解析正则表达式中的.*,.*?,.+?的含义:https://www.jb51.net/article/183106.htm
 
 
 
 
 
 
 
 
 
 
 

 

posted @ 2021-10-28 16:12  TerryMin  阅读(208)  评论(0编辑  收藏  举报