本文共 2104 字,大约阅读时间需要 7 分钟。
匹配字符串的一组规则
判断字符串中是否包含了正则表达式,如果有,返回true,如果没有,返回false
//无g无组的情况:都匹配第一个,结束//只要能匹配到一次,就返回匹配到的内容var str = 'how do you do';var re = /do/;console.log(re.exec(str)); //['do']console.log(str.match(re)); //['do']//有g无组的情况:match将匹配所有的字符//exec只要能匹配到一次,就返回匹配到的字符//match会返回所有的匹配到的,匹配到几次就有几个数组元素var str = 'how do you do';var re = '/do/g'console.log(re.exec(str)); //['do']console.log(str.match(re)); //['do','do]//无g有组的情况:都返回数组,第一个元素是整个正则匹配的内容(只返回第一次匹配到的),其它元素是由组匹配的内容var str = 'abc 123,abc 123';var re = /([a-z]+) (\d+)/;console.log(re.exec(str)); //['abc 123','abc','123']console.log(str.match(re)); //['abc 123','abc','123']//有g有组的情况:exec不受g的影响。match将返回所有匹配的父级(整个正则匹配的内容)var str = 'abc 123,abc 123';var re = /[a-z]+ [0-9]+/g;console.log(re.exec(str)); //['abc 123',[abc],[123]]console.log(str.match(re)); //['abc 123','abc 123']
exec
match
var o_txt = document.querySelector('inout');//失焦事件 + 正则表达式 === 表单验证o_txt.onblur = function(){ //获取输入内容 var str = this.value; //定义正则表达式 var re = /^金{3}$/; //var re = /^金{3,}$/; if(re.test(str)){ //判断str中是否有re close(); }}
/^[abc]{ 3,}$/ : 字符串必须是至少3位的a-c中的字符/^[a-z]$/i 等价于 /^[a-zA-Z]$/[0-9][\u4e00-\u9fa5] : 中文
\d : 表示数字 [0-9]
\D : 表示非数字 [^0-9] \w : 表示数字、字母、下划线 [a-zA-Z0-9_] \W : 非(字母、数字、下划线) \s :空白 \S :非空白 \b : 单词 边界 \B : 非边界转载地址:http://evqzi.baihongyu.com/