我有一个字符串,我从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
‘
和
’
请让我知道一种方法将这些更改为正常单引号,即Ascii值39。 或者将其从字符串中完全删除
我知道我可以使用替换功能来做同样的事情,但问题是它不仅与单引号有关..它可能是未来的任何其他角色..
所以我需要一个万无一失的解决方案来处理这些非法/不可识别的字符
答案 0 :(得分:0)
尝试使用其十六进制等效值(也使用@
制作字符串文字):
return inputValue.match(@"^(?!.*(<|>)).*[a-zA-Z0-9 \u2018\u2019@!#$%^&*()_+={}:;',.?|/~`\n-]+$") == null ? true : false;
^^^^^^^^^^^^
\u2018
适用于‘
,\u2019
适用于’
。