首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery验证:如何对中文和英文的用户名minlength进行不同的验证?

jquery验证:如何对中文和英文的用户名minlength进行不同的验证?
EN

Stack Overflow用户
提问于 2011-03-07 00:51:05
回答 2查看 3.1K关注 0票数 2

我使用jQuery.validate插件来验证我的用户注册表单的输入。

我已经解决了简单的问题(确保用户名至少为6个字符)

代码语言:javascript
复制
$('#new_user').validate({
    rules: {
        "user[name]": {
            required: true,
            minlength: 6,
            remote:"/check_name"
        }, ...

我想在上面的规则中添加一个警告,即允许至少2个中文字符或6个常规字符通过长度测试。(对于中国用户来说,这被认为是很好的可用性,他们中的许多人在现实生活中都有2-3个中文名字)

例如,我希望以下名称通过长度测试:

"张三“"Michael”

和下面的名字失败(由于太短) "张“"Mike”

如何编写自定义javascript函数来检查这些条件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-07 04:37:05

类似于:

代码语言:javascript
复制
  function validate(string) {
    var re = /^[\u3300-\u9fff\uf900-\ufaff]{2,}$/;
    return string.length >= 6 || string.match(re);
  }

  validate("pat")
  validate("patate")
  validate("中")
  validate("中国")

有关详细信息,请参阅Unicode路线图

1

票数 4
EN

Stack Overflow用户

发布于 2011-03-07 03:37:15

您可以使用internationalization plugin来执行此测试:

代码语言:javascript
复制
function returnMinLength(){
    var browserLanguage = jQuery.i18n.browserLang();
    if (browserLanguage == "zh") // zh stands for chinese (I'm not sure)
       return 2;
    else
       return 6;
}

然后,在您的函数中:

代码语言:javascript
复制
   rules: {
        "user[name]": {
            required: true,
            minlength: returnMinLength(),
            remote:"/check_name"
        }, ...

致以问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5211874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档