[英]Match exact string or first word with Regex in Javascript
我的目标是匹配字符串的第一个单词。 因此,当您拥有“ 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
。 另外, ^
仅在开头时才起作用,否则它将充当字符。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.