从字符串中删除空格,点和特殊字符,并在jQuery中用连字符替换

时间:2013-04-23 05:32:27

标签: javascript jquery

我有一个字符串,其中可能有特殊字符,我必须用连字符替换

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

任何人都可以帮我这样做吗?我需要用连字符替换特殊字符。

2 个答案:

答案 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;
&#13;
&#13;

这样就不会在连字符上加倍。

有一点需要注意的是,如果值以句点(点)或任何空格结尾,那么它将以连字符结束。

答案 1 :(得分:9)

您还可以尝试使用函数

全局替换任何非字母数字字符和空格
"123.This is,, :ravi".replace(/[\W_]/g, "-")

/ [\ W _] / g这会全局删除任何非字母数字字符和空格,并且可以用逗号后选择的任何内容替换,