我有一个条件,我必须用'-'替换空白空间,并且应该删除所有其他符号,如“*、%、'、@、$ ....etc”,例如,如果我有一个单词 real生活,应该写成现实生活,再比如,如果我有一个词消防员协会,应该写成消防员协会。
我可以使用 jquery 替换空白空间,例如:
var product= $("#product").val().replace(/ /g,'-');
但我正在努力删除特殊字符
任何人都可以就如何实现这一点提供任何建议或建议谢谢
我有一个条件,我必须用'-'替换空白空间,并且应该删除所有其他符号,如“*、%、'、@、$ ....etc”,例如,如果我有一个单词 real生活,应该写成现实生活,再比如,如果我有一个词消防员协会,应该写成消防员协会。
我可以使用 jquery 替换空白空间,例如:
var product= $("#product").val().replace(/ /g,'-');
但我正在努力删除特殊字符
任何人都可以就如何实现这一点提供任何建议或建议谢谢
将此添加到您的代码中:
//@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 中的替换)。
小提琴:http: //jsfiddle.net/6sk3n/
尝试使用:
var product= $("#product").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, ' ')
小提琴:http: //jsfiddle.net/4YwNC/