正则基础
正则方法的运用
是的,基础自己看吧,我就是想记录一下怎么用,方便以后我拿来用,因为最近的项目要用了,我百度又找又看了好久太麻烦了
字符串的replace()
用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
function myFunction() {
var str = document.getElementById("demo").innerHTML;
var txt = str.replace(/microsoft/i,"Runoob");
// var txt = str.replace("Microsoft","Runoob");
document.getElementById("demo").innerHTML = txt;
}
第一个参数可以是字符串,也可以是正则,这个是String方法,第二个是替换的参数
但是有些复杂的情况下,上面的两个就不适用了。第一个参数是正则,第二个参数是function
字符串的split()
用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: split() 方法不改变原始字符串。
string.split(separator,limit)
limit: 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
function myFunction(){
var str="How are you doing today?";
var n=str.split(/o/g);
document.getElementById("demo").innerHTML=n;// H,w are y,u d,ing t,day?
}
案例:
字符串的search()
用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
方法返回第一个匹配结果的index,查找不到返回-1
search()方法不执行全局匹配,会忽略标志g,并且每次从字符串的开始进行检索
function myFunction() {
var str = "Visit Runoob!";
var n = str.search(/Runoob/i);
// var n = str.search("Runoob");
document.getElementById("demo").innerHTML = n; // 6
}
字符串的match()
在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。和exec()有点像,就是调用反过来了
全局g
非全局
正则的test()
用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
function myFunction() {
var patt1=new RegExp("e"); //true
var patt2 = /ine/;// false
/e/.test("The best things in life are free!"); //true
document.write(patt2.test("The best things in life are free"));
}
但是testf方法有一个地方很值得注意
根据图片所示"ab"用test方法执行两次都是正确返回true,第三次就返回false了,这个是因为lastIndex的缘故,每执行一次reg2的执行位置就改变了,所以就会出现这种情况
解决:(/\w/g).test("ab")
缺点浪费内存 或者 直接使用reg判断,有匹配到就行了,不要匹配多个
正则的exec()
用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
index是起始的第一个字符串的位置,exec会返回一个数组,包含两个参数,第一参数是返回匹配到的字符数组,第二个是正则法则中的匹配组如(\w)
只有在全局的情况下,lastIndex才起作用