我有一个字符串,我需要替换所有特殊字符“〜!@#$%^& *()_ =`{} [] |:;’<>,./?”和连字符的空格.一行中的多个特殊字符应该生成一个连字符.
var mystring="Need !@#$%^\" to /replace this*(){}{}|\><? with_new string "; // desired output: "Need-to-replace-this-with-new-string"
目前,我正在使用这一系列的replace()调用:
return mystring.replace(/[^a-z0-9\s]/gi,'').replace(/[_\s]/g,'-').replace(/\//g,"-");
但它正在输出:
Need----------to/replace-this--------with-new-string;
除了正斜杠之外,它为字符串中的每个特殊字符添加连字符.
解决方法
我建议:
var inputString = "~!@#$%^&*()_+=`{}[]|\:;'<>,./?Some actual text to keep,maybe...",outputString = inputString.replace(/([~!@#$%^&*()_+=`{}\[\]\|\\:;'<>,.\/? ])+/g,'-').replace(/^(-)+|(-)+$/g,''); console.log(outputString);