从MS Word复制时,正则表达式不接受撇号和引号

时间:2013-10-25 18:25:21

标签: jquery regex validation unicode ms-word

我正在进行验证,接受一些特殊字符,破折号,引号,撇号等。

这是代码:

jQuery.validator.addMethod("cityvalidation", function (value, element) {
    return this.optional(element) || /^[a-zA-Z\u0080-\u024F\s\/\-\)\(\`\.\"\'\U+2019]+$/i.test(jQuery.trim(value));
}, "You Have Typed Unallowed Charactors");

它正常工作,除非有人从MS Word复制引号或撇号,然后验证给出了其他错误“你有类型的不允许的Charactors”,因为它不接受来自MS Word的引号和撇号。

请建议MS Word引号和撇号是否有任何unicode或字符,也可以在Validation Regex中添加。

2 个答案:

答案 0 :(得分:0)

得到了解决方案,经过大量的搜索和重编码解决方案,我很难理解,我尝试了一个愚蠢的解决方案,我只是在MS Word中键入引号和撇号,然后从Word复制并添加到我的RegEx代码中。以下是最新的:

jQuery.validator.addMethod("cityvalidation", function (value, element) {
    //return this.optional(element) || /^[a-zA-Z\s\)\(]+$/i.test(jQuery.trim(value));
    return this.optional(element) || /^[a-zA-Z\u0080-\u024F\s\/\-\)\(\`\.\"\'\‘\’\”\“]+$/i.test(jQuery.trim(value));
}, "You Have Typed Unallowed Charactors");

截至目前它还没有给出任何问题,我在多个浏览器中进行了测试,其工作效果很好!

希望这适用于所有人!!!

答案 1 :(得分:0)

MS Word使用不同的编码,因此您需要使用正则表达式。

单引号和撇号

\u2018\u2019\u201A

双引号

\u201C\u201D\u201E

如何从这里使用它们:https://prcode.blog/2015/10/17/ms-word-special-characters-regex/