我目前有一串需要通过jquery修改的文本。
> "space>space"
我目前有以下jquery为我做替换
$('#breadcrumb').html($('#breadcrumb').html().replace(/&[^;]+;/g, ' - '));
我正在尝试将>
替换为单个-
字符,但上面的正则表达式只是将输入字符串更改为---
而不是-
非常感谢任何帮助!
答案 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
修饰符。