正则匹配目标字符串不等于某些特定的字符串

需求

字符串全部由英文组成,并且不等于某些特定的字符串。

实现

MDN上JavaScript的正则表达式——RegExp

x(?!y)

只有当 x 后面不是紧跟着 y 时,才匹配 x。例如,/\d+(?!.)/ 只有当一个数字后面没有紧跟着一个小数点时,才会匹配该数字。

例子

var strs = ['abc', 'login', 'user', 'order', 'cba'];
var re = new RegExp('^(?!login|user|order)[a-z]+$');

测试一下

for(var i = 0, len = strs.length; i < len; i++) {
	console.log('result:' + re.test(strs[i]));
}
true
false
false
false
true

测试结果,与预期一致。

posted @ 2017-08-17 15:43  月半流云  阅读(10068)  评论(0编辑  收藏  举报