9

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

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

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

4

2 回答 2

24

应该一次执行所有正则表达式

"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>

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

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

于 2013-04-23T05:33:55.497 回答
11

您还可以尝试使用该函数全局替换任何非字母数字字符和空格

"123.This is,, :ravi".replace(/[\W_]/g, "-")

/[\W_]/g 这将全局消除任何非字母数字字符和空格,并且可以用您在逗号后选择的任何内容替换,

于 2016-12-28T12:04:59.103 回答