如何定位此字符并使用jQuery替换它?

时间:2014-06-19 19:57:39

标签: jquery regex

我想用jQuery替换singe(撇号)和双引号。我有一个带有文本区域的表单,不允许使用这些字符。我可以替换这些字符“但不是这个字符”下面是我的代码,它完美地适用于前两个字符但不是第三个字符:

function removeQuotes(str){
    var str = $(str).val();
    if(str != ''){
        str = str.replace(/(['"’])/g, '');
        return str;
    }
};


$('textarea').on('blur', function(){
    $(this).val(removeQuotes($(this)));
});

我输入了这个字符串

it's it"s it’s

并模糊了文本区域,这是我的输出

its its it’s

我无法摆脱第三个引用。从Outlook(第三个文件)复制一行文本时我注意到了这一点。

2 个答案:

答案 0 :(得分:0)

str = str.replace(/([`'"’])/g, '');

jsfiddle http://jsfiddle.net/guest271314/XKES3/

答案 1 :(得分:0)

Outlook使用智能引号,我发现Ben Nadel的一篇文章:http://www.bennadel.com/blog/1155-cleaning-high-ascii-values-for-web-safeness-in-coldfusion.htm

使用他的正则表达式:[^ \ x00- \ x7F]这有效地删除了我遇到问题的引用。现在我的页面按要求工作。

更新的代码:

function removeQuotes(str){
    var str = $(str).val();
    if(str != ''){
        str = str.replace(/([`'"‘’“”])/g, '');
        str = str.replace(/([^\x00-\x7F])/g, '');
        return str;
    }
};