Jquery从字符串中删除不可识别/非法字符

时间:2014-04-02 04:37:00

标签: c# jquery regex illegal-characters

我有一个字符串,我从word文档复制,然后将其传递到我的文本区域。 问题是该字符串包含一个看似右引号的字符,但jquery无法识别它。

我正在使用以下正则表达式

return inputValue.match("^(?!.*(<|>)).*[a-zA-Z0-9 \’\‘\@\!\#\$\%\^\&\*\(\)\_\+\-\=\{\}\:\;\'\,\.\?\|\/\~\`\n]+$") == null ? true : false;

这里无法识别的字符串是

\’\‘

当我在firebug中调试时检查相同的正则表达式时,我将其作为

return inputValue.match("^(?!.*(<|>)).*[a-zA-Z0-9 \ \ \@\!\#\$\%\^\&\*\(\)\_\+\-\=\{\}\:\;\'\,\.\?\|\/\~\`\n]+$") == null ? true : false;

请注意,\’\‘现在在jquery中\ \因此总是失败.. 我进一步检查,角色出现了Ascii Value of

&#8216;

&#8217;

请让我知道一种方法将这些更改为正常单引号,即Ascii值39。 或者将其从字符串中完全删除

我知道我可以使用替换功能来做同样的事情,但问题是它不仅与单引号有关..它可能是未来的任何其他角色..

所以我需要一个万无一失的解决方案来处理这些非法/不可识别的字符

1 个答案:

答案 0 :(得分:0)

尝试使用其十六进制等效值(也使用@制作字符串文字):

return inputValue.match(@"^(?!.*(<|>)).*[a-zA-Z0-9 \u2018\u2019@!#$%^&*()_+={}:;',.?|/~`\n-]+$") == null ? true : false;
                                                   ^^^^^^^^^^^^

\u2018适用于\u2019适用于

ideone demo