如何匹配一个非关键词列表
比如我现在有一个关键字列表: if|else
另有一个字符串a
我如何用正则表达式判断a既不是’if’, 也不是’else’的时候,能够获得a的值
试了下 /(?!if|else)/, 无法得到a的值
5 回复
这种情况为撒要用正则。把关键字放到{}里面,然后判断key是否存在不就好了吗。 比如 var keyMap = {if : true, else : true},a = “xxxxx"; var ressult = keyMap[a]?"” : a;
> s = 'laksjdf'
'laksjdf'
> s.match(/(?!if|else)/)
[ '', index: 0, input: 'laksjdf' ]
> s.match(/(?!if|else)/).input
'laksjdf'
取出里面 input 属性不就好了吗?
@wuliao49 其实是想做这样的一个匹配的 :
var e = /<(.+?)>.*?</\1>/ ;
但是分组的值(.+?)又不能是if else这样的关键字,当前有个方案就是先分组,然后再判断分组出来的值是不是在keyMap里面,
想知道能不能全部写在一个正则表达式里面