废话不多说 直接开干!
知识点
string.find 使用模式匹配查找字符串并返回起始位置(i),结束位置(j);
第三个参数pos指定搜索开始的位置,这个参数可以省略(使用默认值1);
pos如果为负数,则从右侧倒数计数(-1表示字符串最后一个字符)。
函数返回匹配字符串的起始位置i,结束位置j
string.match 第一个参数指定目标字符串,每二个参数指定查找模式串。第三个参数可选指定开始位置
这个函数与string.find很象。但不会返回匹配的开始位置与结束位置。而仅仅是返回找到的字符串。
如果在模式串中用圆括号指定匹配分组,则返回值有多个分别对应各个匹配分组的捕获结果。
分组可以相互嵌套,捕获结果返回的顺序对应模式串中匹配分组的左圆括号出现的前后顺序。
如果你希望第一个返回值是匹配结果的完整字符串,那么请将整个模式串包含在一对圆括号内
string.replace 参数分别为(目标字符串,查找模式字符串,替换字符串,替换次数)。
最后一个可选参数指定替换的次数,如果不指定则替换所有的找到的字符串。
直接上代码
//模式匹配
import console;
//查找字符串位置
var i,j = string.find("abc456d" ,"c\d+");
if( i ) {
console.log("在 'abc456d' 中找到 c\d+" ,"从" + i + "到" + j);
}
//匹配字符串:圆括号添加匹配分组 —— 并增加返回值
var a,b = string.match("abc456d" ,"(c(\d+))");
console.log(a,b);
//替换字符串:在模式匹配中 .圆点标记匹配任意字符
str = string.replace("abcd",".","k");
console.log(str); //输出kkkk
str = string.replace("abcd",".","k",1);
console.log(str); //输出kbcd
console.pause();