使用正则表达式(Javascript Regex)验证表单
Validating forms with Regular Expressions (Javascript Regex)
我有一个需要实时验证的输入表单(.Keyup和.Load)
它应该允许所有A-z字符(大写和小写)和符号"'"、"-"answers"(撇号、短划线和空白)。
现在这就是我所拥有的:([A-Za-z]-''s''')*我是这样使用的:
var regex = /([A-Za-z]'-'s'')*/;
if (string == "") {
turn textbox border grey (default)
} else if (!regex.test(string)) {
turn textbox border red
} else {
turn textbox border green
}
它所做的就是每次都把文本框改成绿色(除非它是空白的——它会变成灰色)。什么是正确的表达/技巧?我做错了什么?
您需要以下内容:
var regex = /^[A-Za-z'-'s']*$/;
^
和$
分别是串锚的开始和结束。如果没有这些,比赛可以在字符串中的任何位置开始或结束。由于*
的意思是"重复上一个元素零次或多次",因此无论内容如何,您都将匹配每个字符串,因为正则表达式可以成功匹配零个字符。
当前正则表达式的另一个问题是,[A-Za-z]'-'s''
将尝试按顺序匹配一个字母、一个短划线、一个空白字符和一个撇号(总共4个字符)。要匹配这些选项中的任何一个,您需要将它们全部放在字符类(方括号)中,或者使用与管道字符(|
)的交替,看起来像([A-Za-z]|-|'s|')
。Alternation更为通用,但字符类是此类操作的首选方法。
关于转义,撇号在正则表达式中没有特殊含义,因此不需要转义。只有当破折号在字符类内时,才需要对其进行转义(如果未进行转义,则将其解释为范围的一部分)。
相关文章:
- JAVASCRIPT验证表单中的日期
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 如何使用jQuery正确验证表单
- Javascript不会验证表单
- 如何使用javascript验证表单中的数据,然后调用php页面
- 包括来自另一个页面的Boostrap模态;t验证表单
- Javascript验证表单不重定向页面
- 在提交之前验证表单,jQuery发布到javaScript,然后提交到确认页面
- 引导复选框-x 选中时未正确更新 DOM - 如何验证表单
- Jquery 验证表单
- 验证表单中的 jQuery-UI 微调器
- 在 Jquery 中验证表单的输入字段
- 如何验证表单控制数据大小不超过2.5 mb
- 在表单进入Angular中的ng-submit之前验证表单
- Javascript表单验证:表单在错误返回时提交:
- 使用Angular.js验证表单输入的原始状态
- 正在复制验证表单
- 如何在转盘中逐步(3步)验证表单
- 使用javascript验证表单值
- 验证表单按id输入val