使用 Javascript/jQuery,我有以下字符串;
MasterString = "typography,caret,car,card,align,shopping-cart,adjust,allineate";
什么是最好的 RegEx 来提取包含例如“car”,所以我剩下以下字符串;
ResultString = "caret,car,card,shopping-cart";
是否也可以只提取包含“car”的第一个单词?
ResultString = "caret";
我正在编写一个简单的搜索例程,它将查询 (car) 与逗号分隔列表 进行匹配,我想将第一个结果显示为查询的结果。
更新
我尝试了下面答案中提到的简单 RegEx;
[^,]*car[^,]*
效果很好,请看这张(测试)图片 - http://i.imgur.com/RXwkrrF.png?1
查询是“car”,并且所有标记有至少包含“car”的词的图标都在搜索结果中可见。
唯一的问题是搜索字符串“car”总是不同的(取决于用户在搜索表单中输入的内容)。那么如何在上面的 RegEx 中输入变量 match-string 呢?
类似这样的东西;
[^,]*%QUERY-FROM-SEARCHFIELD%[^,]*
最佳答案
您可以尝试使用下面的正则表达式来仅匹配字符串 caret,car,card,shopping-cart
,
[^,]*car[^,]*
> var masterString = "typography,caret,car,card,align,shopping-cart,adjust,allineate";
undefined
> masterString.match(/[^,]*car[^,]*/g);
[ 'caret',
'car',
'card',
'shopping-cart' ]
要匹配包含字符串 car
的第一个单词,您需要从模式中删除全局标志。
> masterString.match(/[^,]*car[^,]*/);
[ 'caret',
index: 11,
input: 'typography,caret,car,card,align,shopping-cart,adjust,allineate' ]
现在将数组转换为以逗号分隔的字符串并将其存储到变量中。
> var resultString = masterString.match(/[^,]*car[^,]*/g).join(",");
undefined
> resultString
'caret,car,card,shopping-cart'
关于javascript - RegEx - 从逗号分隔的字符串中提取包含子字符串的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094811/