使用jquery从文本中删除特殊字符

时间:2013-06-12 13:09:15

标签: jquery special-characters

我有一个条件,我必须用' - '替换空格,并删除所有其他符号,如“*,%,',@,$ ....等”,例如,如果我有一个词现实生活,它应该写成现实生活,另一个例子,如果我有一个消防官员协会的话,它应该写成消防官员协会。

我可以使用jquery替换空格,如:

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

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

是否可以就如何实现这一点提供任何建议或建议 感谢

2 个答案:

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

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

答案 1 :(得分:1)

尝试使用:

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

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