正则表达式学习笔记
正则表达式的写法有两种方式:
1.var reg = new RegExp("[a-zA-z]+://[^\s]*");
2. var reg = /[a-zA-z]+://[^\s]*/ 这里可以简单的记为向注释符号//中添加模式,而不是\\
正则表达式的方法:
1.search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
var str = "Visit Runoob!"; var n = str.search(/Runoob/i); //6
另外:search 方法可使用字符串作为参数。字符串参数会转换为正则表达式
var str = "Visit Runoob!"; var n = str.search("Runoob");
2.replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
var str = "Vistit microsoft!"; var txt = str.replace(/microsoft/i,"Runoob"); // Visit Runoob!
同样replacte()方法仍然可以使用字符串作为参数
3.match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。(这里就要看是不是全局匹配,如果是全局查找,那么如果有多个就会查找到多个;如果不是全局查找的话,最多只有一个)
var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g);console.log(n);
结果:["ain", "ain", "ain"]
从结果可以看出,当是全局查找时,结果是一个数组,如果不是全局查找时仍然还是一个数组,得出的结果是和exec()方法得出的结果一致的,当然如果没有查找到相应的值返回null
4.test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。需要注意一点的是test()方法的使用方法是reg.test(str) 参数是字符串,和前面三个方法是相反的,
var patt = /e/;
patt.test("The best things in life are free!");//true
5.exec() 方法用于检索字符串中的正则表达式的匹配。该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。使用方法和test方法一样,该方法中如果查找的值有多个,那么只会查找到第一个.
/e/.exec("The best things in life are free!"); //["e", index: 2, input: "The best things in life are free!"] 从结果可以看出只会返回符合结果是一个数组
后期学习补充点:
1.\bW3表示的以W3开头的正则表达式
2.n*和n?的区别:lo*表示的是l(零个或者多个o)都行,显示出来的结果有:l,lo,loo,looo等;而lo?表示的是,验证时零个或者多个o都行,但是显示出来的结果只有l,lo这两种结果