【问题标题】:prevent chinese character input using jquery防止使用jquery输入汉字
【发布时间】:2013-05-31 01:57:00
【问题描述】:

如何防止使用 jquery 输入汉字?

$.validator.addMethod("regex", function(value, element, regexp) {
       var check = false;
            return this.optional(element) || regexp.test(value);
     },
   " Must contain only letters."
 );

这就是我检查输入是否为字母的方式。

regex: /^\s*[a-zA-Z\s]+\s*$/

但是如何查看汉字呢?

【问题讨论】:

  • /^\s*[a-zA-Z\s]+\s*$/首先不包含汉字。
  • 只有中文还是韩文+日文+泰文+等等?
  • 对于 Visual Basic 有一个类似的问题,您可能想简单地调整正则表达式解决方案并将其移植到 jQuery 或 PHP,无论哪个更适合您的要求:stackoverflow.com/questions/10710518/…
  • @DaveChen 其实只有中文是可以的,但如果韩语+日语+泰语也被屏蔽了,那就没关系了。主要是汉字
  • @minitech /^\s*[a-zA-Z\s]+\s*$/ 我以前只查英文字母

标签: php jquery


【解决方案1】:

这可能有用:

function isChn(str){
    return /^[\u4E00-\u9FA5]+$/.test(str);
}

http://jsfiddle.net/yiqiang1314/CMv7E/

【讨论】:

  • 这样可以检查中文单词。但是我想要的是阻止中文单词。我不知道为什么我的检查变成了,输入必须是中文而不是阻塞。我的问题更新了
  • 函数 hasChn(str){ return /[\u4E00-\u9FA5]+/.test(str); } //删除^和$。
【解决方案2】:

问题不在于您的正则表达式 - 您已经阻止了除 a-z 和空格之外的每个字符(并且 a-z 范围内没有中文字符)。但是,您的功能逻辑有问题。按照目前的写法,如果该字段是可选的,则允许使用中文字符。只有当它是可选的为空时,你才应该跳过正则表达式测试:

return (!value && this.optional(element)) || regexp.test(value);

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 2013-07-25
    • 2017-12-05
    相关资源
    最近更新 更多