3

我有一个条件,我必须用'-'替换空白空间,并且应该删除所有其他符号,如“*、%、'、@、$ ....etc”,例如,如果我有一个单词 real生活,应该写成现实生活,再比如,如果我有一个词消防员协会,应该写成消防员协会。

我可以使用 jquery 替换空白空间,例如:

var product= $("#product").val().replace(/ /g,'-');

但我正在努力删除特殊字符

任何人都可以就如何实现这一点提供任何建议或建议谢谢

4

2 回答 2

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 中的替换)。

小提琴:http: //jsfiddle.net/6sk3n/

于 2013-06-12T13:16:42.113 回答
1

尝试使用:

var product= $("#product").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, ' ')

小提琴:http: //jsfiddle.net/4YwNC/

于 2013-06-12T13:11:31.737 回答