Javascript 在字符串对象中查找匹配模式

Javascript 在字符串对象中查找匹配模式,javascript,jquery,regex,Javascript,Jquery,Regex,我有带值的字符串,我想识别模式 一串 value:function() like name:function() or click:function() 我想忽略空格和值不能以下划线和 我有一些我想忽略的单词数组,比如user,address i、 e如果我有以下几点 name:function() click:function() _press:function() user: function() 最后的数组只有[名称,单击] 我试着按照阿维纳什的建议去做,但它并不适用于所有的

我有带值的字符串,我想识别模式 一串

value:function()

like name:function()
or

click:function()
我想忽略空格和值不能以下划线和

我有一些我想忽略的单词数组,比如user,address

i、 e如果我有以下几点

name:function()

click:function()

_press:function()

user: function()
最后的数组只有
[名称,单击]

我试着按照阿维纳什的建议去做,但它并不适用于所有的条件, 有什么想法吗

str.match(/\w+(?=\s*:\s*function)/g)

看起来你想要这样的东西

\b(?!address|user|_)\w+(?=\s*:\s*function)


这个怎么样?在什么情况下Avanash的解决方案不起作用?它似乎符合您列出的所有要求。@BrentStewart他不想匹配以
\u
开头的名称,也不想匹配名称
用户
地址
谢谢,但当我在match match上尝试时。(\b(?!address | user |)\w+(?=\s*:\s*函数)我得到了错误意外标记非法,知道吗?非常感谢,顺便问一下,结尾的g是什么?
g
=全局标志。这有助于进行全局匹配。否则,该匹配将无法进行下一个匹配。只需尝试不带
g
标志的正则表达式,您就会看到差异。
> s = 'name:function()\n\nclick:function()\n\n_press : function()\n\nuser: function'
> s.match(/\b(?!address|user|_)\w+(?=\s*:\s*function)/g)
[ 'name', 'click' ]