我的目标是匹配字符串的第一个单词。因此,当您拥有“ Testing line”之类的字符串时,它将以第一个单词返回“ Testing”,并且我可以用它做任何我想做的事情。这就是我已经拥有的:
elm.html(elm.text().replace(/([^\s]+)/, '<span class="first-word">$1</span>'));
我有文字为“ Demo web”的元素,它返回了“ <span class="first-word">Demo</span> web
”。这样就可以了。
但
我还想要一个例外,当字符串的一部分包含“ Admin”时,它将仅返回该部分。我想说的是...
输入:Adminer helps
-><span class="first-word">Admin</span>er helps
我尝试了此正则表达式:([Admin|^\s]+)
可以正常工作,但仅在这种情况下。现在,它不适用于其他所有没有“管理员”的地方。例子:
输入: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'));
仅供参考: [Admin|^\s]+
是一个“字符类”,与列表中存在的单个字符匹配。在您的情况下,第一个匹配项d
将被替换d
。也^
只能在开始时使用,否则将充当角色。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句