我有一个字符串,其中可能有特殊字符,我必须用连字符替换
var str="123.This is,, :ravi"
上面的字符串应该像这样转换
var newstr="123-This-is-ravi";
我一直在尝试这个
function remove(str){ str.replace(/\./g, "-"); } //replaces only dots
function remove(str){ str.replace(/ /g, "-"); } //replaces only spaces
任何人都可以帮我这样做吗?我需要用连字符替换特殊字符。
答案 0 :(得分:19)
你should do the regular expression all at once:
"123.This is,, :ravi".replace(/[\. ,:-]+/g, "-")
工作示例:
$('p').html("123.This is,, :ravi".replace(/[\. ,:-]+/g, "-"));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p></p>
&#13;
这样就不会在连字符上加倍。
有一点需要注意的是,如果值以句点(点)或任何空格结尾,那么它将以连字符结束。
答案 1 :(得分:9)
您还可以尝试使用函数
全局替换任何非字母数字字符和空格"123.This is,, :ravi".replace(/[\W_]/g, "-")
/ [\ W _] / g这会全局删除任何非字母数字字符和空格,并且可以用逗号后选择的任何内容替换,