CNode

问一个javascript 正则表达式相关的问题

问答
Xxinyuanyu发布于12 年前最后回复12 年前5 回复4513 浏览0 收藏

如何匹配一个非关键词列表 比如我现在有一个关键字列表: if|else
另有一个字符串a

我如何用正则表达式判断a既不是'if', 也不是'else'的时候,能够获得a的值

试了下 /(?!if|else)/, 无法得到a的值

查看回复

回复 (5)

W
wuliao49#1·12 年前

这种情况为撒要用正则。把关键字放到{}里面,然后判断key是否存在不就好了吗。 比如 var keyMap = {if : true, else : true},a = "xxxxx"; var ressult = keyMap[a]?"" : a;

A
alsotang#2·12 年前
> s = 'laksjdf'
'laksjdf'
> s.match(/(?!if|else)/)
[ '', index: 0, input: 'laksjdf' ]
> s.match(/(?!if|else)/).input
'laksjdf'

取出里面 input 属性不就好了吗?

X
xinyuanyu#3·12 年前
引用 wuliao49这种情况为撒要用正则。把关键字放到{}里面,然后判断key是否存在不就好了吗。 比如 var keyMap = {if : true, else : true},a = "xxxxx"; va...

@wuliao49 其实是想做这样的一个匹配的 :

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

但是分组的值(.+?)又不能是if else这样的关键字,当前有个方案就是先分组,然后再判断分组出来的值是不是在keyMap里面,

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

X
xinyuanyu#4·12 年前
引用 alsotang取出里面 input 属性不就好了吗?

@alsotang

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

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

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

参与回复
登录后即可参与回复。登录