您的位置:首页 > Web前端 > JavaScript

js正则方法test与match简单介绍

2017-06-14 23:24 423 查看
1.写一个简单姓名校验

/**
*校验英文名,true:yangzi, li xiao xiao, li si, wang/wu
*/
function checkName(str){
var reg = /^((([a-zA-Z]+ ){1,2}[a-zA-Z]+)|([a-zA-Z]+\/[a-zA-Z]+)|[a-zA-Z]+)$/;
return reg.test(str);
}
console.log(checkName("wang wu xi"));
》true

简单说下test(),exec()和match()的区别:

test(),exec()是RegExp对象方法,match()是String对象方法。

用法说明返回值
pattern.test(str)判断str是否包含匹配结果包含返回true,不包含返回false。
pattern.exec(str)根据pattern对str进行正则匹配返回匹配结果数组,如匹配不到返回null
str.match(pattern)根据pattern对str进行正则匹配返回匹配结果数组,如匹配不到返回null
RegExp的实例有哪些属性:

global: 布尔值,表示是否设置了 g 标志

ignoreCase: 布尔值,表示是否设置了 i 标志

lastIndex: 搜索下一个匹配项时开始的位置,从0开始

multiline: 布尔值,表示是否设置了 m 标志

source: 正则表达式的字符串表示

exec 方法受参数 g 的影响。若指定了 g,下次调用 exec 时会从上个匹配的 lastIndex 开始查找。看个例子:
var reg = /\d/;
console.log(reg.exec("bb12"));
console.log(reg.lastIndex);
console.log(reg.exec("bb12"));
console.log(reg.lastIndex);
》["1",
index: 2, input: "bb12"]

 0

 ["1", index: 2, input: "bb12"]

 0
var reg = /\d/g;
console.log(reg.exec("bb12"));
console.log(reg.lastIndex);
console.log(reg.exec("bb12"));
console.log(reg.lastIndex);
》["1", index: 2, input: "bb12"]

 3

 ["2", index: 3, input: "bb12"]

 4

match()可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
var reg = /[a-c]/ig;
console.log("adfBCcqwe".match(reg));
》["a", "B", "C", "c"]

文章参考:https://segmentfault.com/a/1190000003497780
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: