javascript - Livevalidation - 正则表达式问题

标签 javascript regex livevalidation

我正在使用 LiveValidation ( http://livevalidation.com/ ) 来验证我网站上的表单以获取页面 url。 我的条件是:

  • 不能为空
  • 必须以字母开头
  • 不允许有空格
  • 仅字母数字字符、破折号和下划线

到目前为止我有这个:

    var formName = new LiveValidation("sitePages-name");
    formName.add(Validate.Presence);
    formName.add(Validate.Format,{ pattern: /^[a-zA-Z]/, failureMessage: "Must start with a letter." } );
    formName.add(Validate.Exclusion, {within: [' '], partialMatch: true, failureMessage: "Spaces are not allowed."});
    formName.add(Validate.Format,{ pattern:/[a-zA-Z0-9-_]+$/, failureMessage: "Only alpha-numeric characters, dashes and underscores."})

满足第一个和第二个条件。我正在为“没有空格”和“只有字母数字字符、破折号和下划线”的第三个和第四个条件而苦苦挣扎。

我尝试通过正则表达式来处理空格和第四个条件,但它不起作用,所以我现在只是将空格分隔到排除项中。 如果您刚刚键入的字符不是正则表达式模式中的字符,则第四个条件的模式有效。但是,如果您继续输入“有效”字符并且之前有一个“无效”字符,错误就会消失并变为有效。

如果输入框中有任何“无效”字符,有人知道如何正确地执行该模式以捕获它吗?如果可能的话,如果我可以将无空格条件与模式合并,那就太好了。

最佳答案

/^[a-zA-Z][a-zA-Z0-9_\-]*$/

  • [a-zA-Z] 表示字母。
  • [a-zA-Z0-9_\-] 表示字母、数字、破折号或下划线。
  • *表示重复0次或多次
  • ^ 是字符串的开始
  • $是字符串的结尾

读出为:在字符串的开头,匹配一个后者,然后匹配零个或多个字母、数字或下划线字符,然后匹配字符串的结尾。

关于javascript - Livevalidation - 正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17225292/

相关文章:

javascript验证数字未检测到空表单字段

javascript - 使用 LiveValidation 滚动到第一个表单错误

javascript - 如何在 JavaScript 中设置 textBox.Text=radCombo.Text

javascript - jQuery照亮与bootstrap 2.2.2一起使用将无法一起工作: e. css(...)未定义照亮.js

regex - Notepad++ regex 如何替换第三次出现的斜杠并绕过第一个和第二个斜杠?

java - 如何使用 Java 的 String.replaceAll 方法替换以 $ 字符开头的字符串

java - 正则表达式模式匹配器

javascript - 使用 jQuery DatePicker 进行 LiveValidation

javascript - 如何使用 livevalidation 验证信用卡到期日期(2 个字段)

javascript - 在 ES6 中格式化日期