使用正则表达式的javascript正则表达式用多个字符替换字符串

时间:2011-11-13 04:14:04

标签: javascript jquery regex

我目前有一串需要通过jquery修改的文本。

 >    "space>space"

我目前有以下jquery为我做替换

$('#breadcrumb').html($('#breadcrumb').html().replace(/&[^;]+;/g, ' - '));

我正在尝试将>替换为单个-字符,但上面的正则表达式只是将输入字符串更改为---而不是-

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

那是因为你的正则表达式:

/&[^;]+;/g

正在寻找:

&      an ampersand, followed by
[^;]+  one or more characters that are not semicolons, followed by
;      a semicolon

因此 >都与模式匹配。第二个/表示结尾后的g进行全局替换 - 如果你将其关闭,那么只会替换第一个匹配。

你需要:

.replace(/>/g, '-')

这会将>的所有实例更改为-而忽略其他所有内容。

如果您特别想要替换>,只有它被不间断的空格所包围,有几种方法可以做到,最简单的方法可能是:

.replace(/ > /g, ' - ')

答案 1 :(得分:0)

replace(/>/g, "-")

您没有将>替换为-,而是替换以&开头且以;结尾的所有内容。

如果只出现一次,则不需要g修饰符。