1

我需要通过在可选择的单词周围添加跨度标签来使用 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 个字符,它就会成功运行。

4

1 回答 1

0

你可以使用这个正则表达式

(?:\s|^)([^a-zA-Z\d\$]*?)([a-zA-Z\d\$][^\s]*?)([^a-zA-Z0-9'-]*?)(?=\s|$)

现在你可以像这样替换它

$1<span>$2</span>$3
于 2012-10-31T17:33:42.600 回答