我正在使用 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."})
满足第一个和第二个条件。我正在为“无空格”和“只有字母数字字符、破折号和下划线”的第三个和第四个条件而苦苦挣扎。
我尝试通过正则表达式来处理空格和第四个条件,但它不起作用,所以我现在只是将空格分隔到排除项中。如果您刚刚键入的字符不是正则表达式模式中的一个,则第四个条件的模式有效。但是,如果您继续输入“有效”字符并且之前输入了“无效”字符,错误就会消失并变为有效。
如果输入框中有任何“无效”字符,有谁知道如何正确地捕捉它?如果可能的话,如果我可以将无空间条件与模式合并,那就太好了。