【问题标题】:regex jquery validations正则表达式 jquery 验证
【发布时间】:2018-02-27 13:00:48
【问题描述】:

有一个“经验”字段,用户可以在其中提交带有空格但每个单词之间不超过两个空格的值。

如果他们键入,则应显示错误消息。以下是我的代码及其以另一种方式工作。它检查用户的输入,如果不超过两个空格,则显示错误消息。我不想那样。

我想在用户在每个单词之间输入两个以上空格时显示错误消息。请尝试解决此问题。

正则表达式/[ ]{2,}/

e.validator.addMethod("descriptionType", function (e, i) {
    return e.match(/[ ]{2,}/)
}, "Please remove unwanted space");

$("#experiencemodalform").validate({
    rules: {
        experience: {
            descriptionType: !0
            , required: !0
            , minlength: 50
            , maxlength: 1500
        }
    }
    , messages: {}
    , submitHandler: function () {
        return !1
    }
    , ignore: ".ignore"
    , errorElement: "label"
    , errorClass: "has-error"
    , submitHandler: function (e) {
        e.submit()
    }
    , highlight: function (e) {
        $(e).closest(".form-group").removeClass("success").addClass("has-error")
    }
}); 

【问题讨论】:

  • required 获取布尔值 truefalse!0 看起来像 1 的更冗长的说法。然后在submitHandler 中使用return !1 而不是0false。你为什么要这样编程?
  • @Sparky 我只使用 true 和 false。在托管应用程序之前,我使用了一些在线 js 压缩工具。然后它转换了!0!1之类的代码。客户要求是用户不想提交小于 min 字符的值。很少有人使用空格并提交小于最小字符的值。

标签: jquery regex jquery-validate


【解决方案1】:

试试这个

return e.match(/^((?![ ]{2,}).)*$/gm)

【讨论】:

  • 但是在用户点击进入文本区域后它不起作用。它适用于输入字段。
  • @user7152572,您的问题中绝对没有向我们展示 HTML,因此该回答者不可能知道您的 textarea 为何不起作用。我的猜测是因为您只将规则应用于一个字段;这仅基于您在 OP 中发布的代码。如果您想要一个好的答案,您需要发布一个好的问题。
  • @Sparky 请检查此链接jsfiddle.net/sw87W/1485 客户要求如果文本区域中有任何空间,它应该显示错误消息。它在一条线上工作得很好。如果用户单击输入,则验证不起作用。请帮忙