js, js中如何使用正则化来匹配字符串?不知道小伙伴们今天来看看边肖的分享吧!
1.简介:
Js正则对象可以用两种方式声明:new运算符和literal方式。
2.使用正则化来匹配字符串:
Test:
通过测试,我们可以直接检查字符串s中是否有匹配;
Execute:
在非全局模式下,它是匹配字符串S中的第一个匹配字符串。
let reg=/(t)es(t)/; let s=testtest;
let arr=reg.exec(s); console.log(arr);
//[ test, t, t, index: 0, input: testtest ] let arr1=reg.exec(s);
console.log(arr1);
//[ test, t, t, index: 0, input: testtest ]
在全局模式下,将遍历整个字符串以找到匹配的字符串。
let reg=/(t)es(t)/g; let s=testtest;
let arr=reg.exec(s); console.log(arr);
//[ test, t, t, index: 0, input: testtest ] let arr1=reg.exec(s);
console.log(arr1);//[ test, t, t, index: 4, input: testtest ]
注意:上述输出结果的第二项和第三项是匹配组。
例如:
let reg=/(t)es(t)/g; let s=testtest;
let arr=reg.exec(testtest);
console.log(arr);//[ test, t, t, index: 0, input: testtest ] let arr1=reg.exec(testtest);
console.log(arr1);//[ test, t, t, index: 4, input: testtest ]
匹配两个不同的testtest会出现与相同test test字符串匹配结果相同的现象。在上面的演示中,第一个字符串的遍历显然是不完整的。
Reg,一个正则对象,会在正则对象的lastIndex属性中保存当前匹配字符串后的下标,即4,下次会从对应的lastIndex下标开始正则匹配字符串。
Match:
这个方法有点类似于exec:
在非全局模式下,分组是匹配的。
let reg=/(t)es(t)/; console.log(s.match(reg));
//[ test, t, t, index: 0, input: testtest ] console.log(s.match(reg));
//[ test, t, t, index: 0, input: testtest ]
在全局模式下分组将不匹配,所有匹配的字符串都将被返回。
let reg=/(t)es(t)/;
console.log(s.match(reg));
//[ test, t, t, index: 0, input: testtest ] console.log(s.match(reg));
//[ test, t, t, index: 0, input: testtest ]
Replace (mode, replace):
用替换替换与模式匹配的字段。
var pattern=/test/g;
var s=testtest;
Console.log(s.replace (mode, task)); //Replaced the experiment with the work.
注意:模式修饰符必须有G,也就是全局匹配,才能替换所有匹配。
Search (mode):
返回模式在字符串中的开始位置;
let pattern=/test/g;
let s=testtest;
console . log(s . search(pattern));//找到返回位置,否则返回-1。
注意:有没有全局匹配并不重要。如果找到,就返回该位置,否则返回-1。
Split (pattern):
将字符串分割成模式单元,并返回由分割字段组成的数组;
let pattern=//g;
let s=t e s t t e s t;
console . log(s . split(pattern));//将空格拆分成数组。
js,以上就是本文为您收集整理的js最新内容,希望能帮到您!更多相关内容欢迎关注。
声明:易商讯尊重创作版权。本文信息搜集、整理自互联网,若有来源标记错误或侵犯您的合法权益,请联系我们。我们将及时纠正并删除相关讯息,非常感谢!