2012-07-25 96 views
0

我想在JavaScript中使用正则表达式来匹配字符串中的“icon-”的实例,并将整个附加的单词返回到分隔符(空格)。字符串的一个例子是正则表达式匹配整个单词

ui-grid-ico-sort icon icon-up ui-icon-asc icon-user ui-icon ui-icon-triangle-1-n ui-sort-ltr 

在这种情况下,我只想匹配'icon-up'和'icon-user'。

到目前为止,我尝试了\ bicon-它似乎匹配图标的每个实例 - 无论它在一个单词(4个匹配)和\ bicon - [^'“] +中的位置如何, icon-

回答

3
(^|\s)icon-\S+ 

匹配以icon-开始到下一个空格字符的所有单词

你将需要删除的引入部分g空格字符,如果存在的话。没有其他方式,因为JavaScript不支持lookbehind断言。

说明:

(^|\s) # Match start of string or whitespace 
icon- # Match icon- 
\S+  # Match one or more non-whitespace characters. 
+0

谢谢你提供的解释 – 2012-07-26 07:41:58

0

使用的第一个实例正则表达式: (^|\s)icon-\S+

0

这是正则表达式:

\bicon-[^\b]+?\b 

通过使用\ B,该表达也匹配在这些情况下的 “图标上”:

icon,icon-up
icon,icon-up,icon-down

+0

这不会工作 - 他不希望'ui-icon-asc'另外'\ b'不能在字符类中工作。 – 2012-07-25 12:21:39