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

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

value:function() like name:function() or click:function() 

我想忽略空间和值不能以下划线开头,另外

我有一些我想忽略的单词数组,如用户,地址

即如果我有以下内容

 name:function() click:function() _press:function() user: function() 

最后的数组只有[name,click]

我尝试按照Avinash的建议,但它不适用于所有条件,任何想法?

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

看起来你想要这样的东西,

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

DEMO

 > 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' ]