jquery validate:如何验证中文和英文字符的用户名最小长度不同?

发布于 2024-10-20 10:36:58 字数 493 浏览 6 评论 0原文

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

我已经完成了简单的案例(确保用户名至少有 6 个字符)

$('#new_user').validate({
    rules: {
        "user[name]": {
            required: true,
            minlength: 6,
            remote:"/check_name"
        }, ...

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

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

“张三” “Michael”

及以下名字失败(由于太短) “张” “Mike”

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

I'm using the jQuery.validate plugin to validate inputs for my user registration form.

I've got the simple case working(make sure user name is at least 6 characters)

$('#new_user').validate({
    rules: {
        "user[name]": {
            required: true,
            minlength: 6,
            remote:"/check_name"
        }, ...

One caveat I'd like to add to the above rule is to allow a minimum of 2 Chinese characters OR 6 regular characters to pass the length test. (This is considered good usability for Chinese users, many of whom has 2-3 Chinese Character names in real life)

For example, I'd like the following names to pass the length test:

"张三"
"Michael"

and the following names to fail(due to being too short)
"张"
"Mike"

How do you write a custom javascript function to check for these conditions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

↘紸啶 2024-10-27 10:36:58

类似于:

  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]

[1] http://unicode.org/roadmaps/bmp /

Something like :

  function validate(string) {
    var re = /^[\u3300-\u9fff\uf900-\ufaff]{2,}$/;
    return string.length >= 6 || string.match(re);
  }

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

See the Unicode Roadmap for details [1]

[1] http://unicode.org/roadmaps/bmp/

你与昨日 2024-10-27 10:36:58

您可以使用 i国际化插件 以便您可以执行此测试:

function returnMinLength(){
    var browserLanguage = jQuery.i18n.browserLang();
    if (browserLanguage == "zh") // zh stands for chinese (I'm not sure)
       return 2;
    else
       return 6;
}

然后,在您的函数中:

   rules: {
        "user[name]": {
            required: true,
            minlength: returnMinLength(),
            remote:"/check_name"
        }, ...

问候。

You can use the internationalization plugin so that you can do this test:

function returnMinLength(){
    var browserLanguage = jQuery.i18n.browserLang();
    if (browserLanguage == "zh") // zh stands for chinese (I'm not sure)
       return 2;
    else
       return 6;
}

Then, in your function:

   rules: {
        "user[name]": {
            required: true,
            minlength: returnMinLength(),
            remote:"/check_name"
        }, ...

Regards.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文