javascript - RegEx - 从逗号分隔的字符串中提取包含子字符串的单词

标签 javascript regex string

使用 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[^,]*

DEMO

> 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/

相关文章:

javascript - 当光标悬停在文本上时显示图像

javascript - 仅当满足条件时才使用 javascript 重置 html 表单

javascript - 使用 NodeJS/npm 调用本地 JS 包

javascript - 将正则表达式字符串替换为相同的内容,并在其周围添加一个 span 标记

javascript - 使用 Javascript 从 DOM 元素添加/删除类的最有效方法是什么?

regex - 更改 awk 模式中的正则表达式分隔符

javascript - 将文本插入文本区域时保留新行

java - 如何拆分包含相同模式的字符串

java - 如何从 JAVA Android 中的字符串中获取某些特定的单词?

c++ - 解析小的特定参数的最有效方法