我有一个条件,我必须用' - '替换空格,并删除所有其他符号,如“*,%,',@,$ ....等”,例如,如果我有一个词现实生活,它应该写成现实生活,另一个例子,如果我有一个消防官员协会的话,它应该写成消防官员协会。
我可以使用jquery替换空格,如:
var product= $("#product").val().replace(/ /g,'-');
但我正在努力删除特殊字符
是否可以就如何实现这一点提供任何建议或建议 感谢
答案 0 :(得分:2)
将此添加到您的代码中:
//@Author Karl-André Gagnon
if(String.prototype.replace){
String.prototype.oldReplace = String.prototype.replace;
String.prototype.replace = function(find, replace){
var stringReturned = this;
if(!find || !replace) return undefined;
if(find instanceof Array){
if(typeof replace == 'string'){
for(var i = 0; i < find.length; i++){
stringReturned = stringReturned.oldReplace(find[i],replace);
}
}else if(replace instanceof Array && replace.length == 1){
for(var i = 0; i < find.length; i++){
stringReturned = stringReturned.oldReplace(find[i],replace[0]);
}
}else if(replace instanceof Array){
for(var i = 0; i < find.length; i++){
stringReturned = stringReturned.oldReplace(find[i],replace[i] ? replace[i] : '');
}
}else{
stringReturned = undefined;
}
}else{
stringReturned = stringReturned.oldReplace(find,replace);
}
return stringReturned;
}
}
这将允许您将数组作为.replace()
的参数传递。
然后你可以这样做:
string.replace([/ /g, /["*%'@$]/g],['-', ''])
基本上,第一个数组的第一个单元格将被第二个数组的第一个单元格替换(如php中的替换)。
答案 1 :(得分:1)
尝试使用:
var product= $("#product").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, ' ')