活体验证-正则表达式问题
Livevalidation - Regex issue
我使用livevalvalidation (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."})
满足第一个和第二个条件。我正在纠结第三和第四个条件:"没有空格"answers"只有字母数字字符、破折号和下划线"。
我试着用正则表达式做空间和第四个条件,但它不起作用,所以我现在只是把空间分隔成排除。如果您刚刚键入的字符不在正则表达式模式中,则第四个条件的模式有效。但是,如果您一直输入"有效"字符,并且之前有一个"无效"字符,则错误将消失,并且它将变为有效。
有没有人知道如何正确地做模式来捕获它,如果在输入框中有任何"无效"字符?如果可以的话,我可以将无空格条件与模式合并,那就太好了。
/^[a-zA-Z][a-zA-Z0-9_'-]*$/
.
-
[a-zA-Z]
为字母。 -
[a-zA-Z0-9_'-]
表示字母、数字、破折号或下划线。 -
*
表示重复0次或以上 -
^
是字符串 的开始。 -
$
是字符串 的结尾
它读出为:在字符串的开头,匹配一个后,然后匹配零个或多个字母、数字或下划线字符,然后匹配字符串的结尾。
没有使用该插件,我认为通过add
添加的后续验证是按顺序处理的。
在这种情况下:
var formName = new LiveValidation("sitePages-name");
// Must be present
formName.add(Validate.Presence);
// Must start with A-Z or a-z
formName.add(Validate.Format,{ pattern: /^[a-zA-Z]/, failureMessage: "Must start with a letter." } );
// Must only have A-Z, a-z, 0-9, _, or -
formName.add(Validate.Format,{ pattern:/.[a-zA-Z0-9_'-]+$/, failureMessage: "Only alpha-numeric characters, dashes and underscores."})
我没有为空格设置规则,因为它被第三条规则所覆盖,需要A-Z
, a-z
, 0-9
, _
和-
。
上面我假设您想在错误消息中尽可能具体。因为可以在一个步骤中完成:
formName.add(Validate.Format,{ pattern: /^[a-zA-Z][a-zA-Z0-9_'-]*$/, failureMessage: "Must start with a letter and consist only of alphanumerics, underscores, or dash characters" } );
(假设允许单字符条目。如果至少需要两个字符,请将*
更改为+
。
你可以这样做:
/^[a-zA-Z]['w-]*$/
相关文章:
- Javascript中的正则表达式问题转义特殊字符
- AngularJS ng-pattern的正则表达式问题
- 匹配 JavaScript 中的字符串时的正则表达式问题
- angularjs 的正则表达式问题
- 解决正则表达式问题;验证js
- 电子邮件正则表达式问题
- 发现正则表达式问题中的字符
- Javascript正则表达式问题-只匹配部分结果
- Javascript正则表达式问题
- 活体验证-正则表达式问题
- javascript中的正则表达式问题
- jquery正则表达式问题匹配任何字符串a-zA-Z0-1
- Javascript正则表达式问题
- Javascript正则表达式问题
- 正则表达式问题-替换浮点数,而不是整型
- Javascript正则表达式问题
- Javascript正则表达式问题
- Javascript正则表达式问题与facebook链接
- 包含UTF-8字符的字符串的Javascript正则表达式问题
- NodeJS中的URL正则表达式问题