Javascript替换:不要在连字符(正则表达式)上拆分单词

时间:2011-05-19 18:58:28

标签: javascript regex

我使用replace<a/>标签包装字符串中的所有单词,但如果单词包含短划线或连字符,则会拆分单词,例如:hello-there变为{ {1}}。

这就是我现在使用的:

hello - <a>there</a>

另外,如何从单词中删除句点或逗号?

2 个答案:

答案 0 :(得分:3)

正则表达式中的

\w不包含破折号(-),因此您的匹配将明确排除自动换行中的破折号。换句话说,给定

hello-there

你的正则表达式会看到:

word(hello) non-word(-)  word(there)

试试这个:

replace(/\b([\w-])+\b/, ...)

明确地在“这是一个单词的一部分”类中包含破折号。

答案 1 :(得分:1)

<script type="text/javascript">

var str="hello-there";

document.write(str.replace(/\b([\w+-]+)\b/g,'<a href="javascript:void(0)">$1</a>')
);

</script>