javascript - 在 Javascript 中使用 Regex 匹配精确的字符串或第一个单词

标签 javascript regex

我的目标是匹配字符串的第一个单词。所以当你有像“Testing line”这样的字符串时,它会返回“Testing”作为第一个词,我可以用它做任何我想做的事。这是我已经拥有的:

elm.html(elm.text().replace(/([^\s]+)/, '<span class="first-word">$1</span>'));

我有文本为“Demo web”的元素,它返回了“<span class="first-word">Demo</span> web”。所以这没关系。

但是

我还想要一个异常(exception),当字符串的一部分包含“Admin”时,它将只返回那部分。我想说的...

输入:Adminer helps -> <span class="first-word">Admin</span>er helps

我试过这个正则表达式:([Admin|^\s]+)可以正常工作,但仅适用于这种情况。它现在不适用于其他所有不存在“Admin”的地方。示例:

输入:Blabla date -> Blabla<span class="first-word"> d</span>ate

我做错了什么?如果可能的话,我想只用正则表达式来做。

最佳答案

您可以使用正则表达式 /\bAdmin|\S+/

function replaceText(str) {
  return str.replace(/\bAdmin|\S+/, '<span class="first-word">$&</span>');
}

console.log(replaceText('Adminer help'));
console.log(replaceText('abc help'));
console.log(replaceText('test help'));

Regex explanation here

Regular expression visualization


仅供引用: [Admin|^\s]+ 是匹配列表中存在的单个字符的“字符类”。在您的情况下,第一个匹配项是 d,它将替换 d。此外,^ 只有在开头时才有效,否则它将充当 Angular 色。

关于javascript - 在 Javascript 中使用 Regex 匹配精确的字符串或第一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936779/

相关文章:

regex - Vim 正则表达式不匹配字符类中的空格

c# - 使用正则表达式检查单词中的一个或多个空格

Python - 从变量中提取数据的正则表达式

javascript - 如何从 "id"元素获取HighCharts系列 "series"?

javascript - 从 Javascript 使用 Web 服务

java - 正则表达式,从捕获的组中获取数组Java

regex - 正则表达式量词 : . * 和 .* 有什么区别?

javascript - 异步 JavaScript 和对象持久化

javascript - 检测用户在移动设备上返回页面

正方形内的javascript可点击区域