问一个javascript 正则表达式相关的问题
发布于 4个月前 作者 xinyuanyu 291 次浏览 来自 问答

如何匹配一个非关键词列表 比如我现在有一个关键字列表: 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里面,

想知道能不能全部写在一个正则表达式里面

@alsotang

之前不晓得有input这个属性,我再chrome 的console里面,直接返回就是一个[“”]了。 不晓得这样的一个匹配用正则表达式怎么做:

var e = /<(.+?)>.*?</\1>/ ;

分组的值(.+?)不能是if else这样的关键字,这个用正则表达式怎么写呢 ?

回到顶部