我需要通过在可选单词周围添加span标签,在Javascript中使用正则表达式在字符串中选择单词。一个单词可以选择的条件很少。他们是,
1)可选择的单词可以由字母和数值组成,用空格分隔。
2)出现在单词之间的任何特殊字符或特殊字符组合也将是可选文本的一部分。例如。 HTML#CSS是一个单一的可选单词
3)出现在单词前面或后面的任何特殊字符或特殊字符组合将无法选择。例如。 HTML #CSS是两个可选择的单词(HTML和CSS)
第3点的例外情况 - 单词前面的$(美元符号)将成为可选单词的一部分。 - 单词末尾的'(撇号)将成为可选单词的一部分。
例如,
$45 will be <span>$45</span>
#45 will be #<span>45</span>
end. will be <span>end</span>.
said' will be <span>said'</span>
html#css will be <span>html#css</span>
有人可以帮我正则表达吗?如果需要更多信息/说明,我可以使用。谢谢。
这就是我到现在为止所做的事情 - /([A-Za-z0-9\$]+)([A-Za-z0-9]+)([A-Za-z0-9']+)/g
但如果一个单词中至少有3个字符,它会成功运行。
答案 0 :(得分:0)
您可以使用此正则表达式
(?:\s|^)([^a-zA-Z\d\$]*?)([a-zA-Z\d\$][^\s]*?)([^a-zA-Z0-9'-]*?)(?=\s|$)
现在你可以像这样替换它
$1<span>$2</span>$3