[英]remove comma seperated string and replace it in javascript regex
[英]RegEx - Extract words that contains a substring, from a comma seperated string
使用Javascript / jQuery ,我有以下字符串;
MasterString = "typography,caret,car,card,align,shopping-cart,adjust,allineate";
什么是提取包含例如“ car ”的所有单词的最好的RegEx ,所以我剩下以下字符串;
ResultString = "caret,car,card,shopping-cart";
是否也可以仅提取包含“ 汽车 ”的第一个单词?
ResultString = "caret";
我正在编写一个简单的搜索例程,它将查询( car )与逗号分隔列表进行匹配,我想将第一个结果显示为查询的结果。
UPDATE
我尝试了下面答案中提到的简单RegEx;
[^,]*car[^,]*
它完美无缺,请看这个(测试)图像 - http://i.imgur.com/RXwkrrF.png?1
查询为“ car ”,并且在搜索结果中显示所有标记有至少包含“ car ”的单词的图标。
唯一的问题是搜索字符串“ car ”总是不同的(取决于搜索表单中的用户输入)。 那么如何在上面的RegEx中输入变量匹配字符串呢?
像这样的东西;
[^,]*%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'
没有正则表达式你可以这样做:
将字符串拆分为数组:
var tempArray = MasterString.split( ',' );
过滤数组中包含单词car
值:
tempArray = tempArray.filter(function (x) { if (x.contains('car')) return x; });
加入生成的数组:
ResultString = tempArray.join( ',' );
MasterString = "typography,caret,car,card,align,shopping-cart,adjust,allineate";
var tempArray = MasterString.split( ',' );
tempArray = tempArray.filter(function (x) {
if (x.contains('car')) return x;
});
ResultString = tempArray.join( ',' );
要获得第一个结果,只需访问tempArray
的第0个元素:
var x = tempArray[0];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.