【问题标题】:Validate.JS - DISallow Non-ASCII Unicode CharactersValidate.JS - 禁止使用非 ASCII Unicode 字符
【发布时间】:2015-04-10 22:26:12
【问题描述】:

我正在寻找一个正则表达式,或者返回 TRUE/FALSE 的简单函数,它检测非 ASCII Unicode 字符的存在,用于我的$("form").validate({ 调用。基本上,如果用户输入任何 unicode 字符,我希望验证失败。我想允许所有标准的、SQL-VARCHAR 可接受的字符。

【问题讨论】:

  • 这纯粹是为了名字/姓氏验证,所以关于 unicode 数字和诸如此类的问题不适用。
  • 你知道,ASCII 字符也是 Unicode 字符。我想你的意思是问非 ASCII Unicode 字符。
  • 您当然是正确的,我将对问题进行编辑,以便对关注的人更有帮助。谢谢!

标签: javascript jquery regex validation unicode


【解决方案1】:

使用String.charCodeAt

for(var i = 0, l = string.length; i < l; i++) {
    if(string.charCodeAt(i) > 127) {
        return false;
    }
}
return true;

【讨论】:

  • 如果我能接受两个答案,我会检查这个,但这是一种“先到先得”的事情。
  • @PKD 无需解释您的投票;只要确保您选择了您认为更有用的那个。谁先发帖无关紧要。
  • 它们都非常有用,而且写得很好。最后,我选择了“简短而甜蜜”,但我很欣赏两者固有的知识,并且我已经为这个问题加注了星标,以便以后可以保留它以供 KB 使用。谢谢!
【解决方案2】:

你可以使用这个正则表达式:

var re = /[^\x00-\x7f]/;

然后将其用作:

var invalid = re.test(name);
// true if there is any character beyond ASCII (128) is present

【讨论】:

  • 太棒了。正是要求的内容。
猜你喜欢
  • 2012-01-04
  • 2015-07-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多