RegEx for jQuery Input Validation
RegEx for jQuery Input Validation
我正在使用jquery验证插件来验证我的输入字段。
我有一个应该接受的字段:
a) 字母 [a-zA-Z]
b) 带数字的字母 [a-zA-Z0-9]
c) 无特殊字符
所以:
ADFad1334 或 43545SFDDFdf454fgf :是正确的,因为我们有字母和数字
asdadadASD :是正确的,因为我们只有字母
12312342:不正确,因为它只有数字
sdff23424#$ :不正确,因为有特殊字符(在本例中为 # 和 $)
我使用的代码如下:
$.validator.addMethod("atLeastAletter", function(value) {
return /^[a-zA-Z]*$/img.test(value) || /^[a-zA-Z0-9]*$/img.test(value);
},"Must contain at least a letter and/or number(s). No other characters are allowed");
然后:
$('#RegistrationForm').validate({
rules: {
fieldname: {
atLeastAletter: true
},
.....
此正则表达式的问题在于,如果输入只是数字(例如 3434224),它将接受它并通过验证。
问题出在哪里?
提前谢谢。
或此模式
^(?='S*[a-zA-Z])[a-zA-Z0-9]+$
演示
^ # Start of string/line
(?= # Look-Ahead
'S # <not a whitespace character>
* # (zero or more)(greedy)
[a-zA-Z] # Character Class [a-zA-Z]
) # End of Look-Ahead
[a-zA-Z0-9] # Character Class [a-zA-Z0-9]
+ # (one or more)(greedy)
$ # End of string/line
/^'w*[a-zA-Z]+'w*$/
这应该匹配任何只有字母和数字的字符串,但它必须至少包含一个字母。
sadAddsa // Pass
98463298 // Fail
jdsH98sd // Pass
987Fkjd89 // Pass
jfk!jhj // Fail
kjhgh8768!@ // Fail
A8 // Pass
8S // Pass
B // Pass
7 // Fail
B_bkfd86jh // Fail (Using the regex in the edit)
编辑:正如Alpha Bravo指出的那样。这也将匹配下划线。如果您不想要下划线/^[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*$/
则仅匹配字母和数字,仅当它包含一个字母时。
使用所有的HTML5,看看这个小提琴:http://jsfiddle.net/bud68oho/2/
此小提琴使用required
和模式属性来验证表单。如果未填写输入,则必需属性不允许发布表单。pattern
属性允许您实现正则表达式以进行匹配。如果输入不符合正则表达式的要求,则表单将不会发布。
这种方法的唯一缺点是浏览器兼容性。确保使用目标浏览器测试此方法。上面的示例适用于最新版本的IE和Chrome,我无法进行任何进一步的测试。
/^[a-zA-Z0-9]*$/img.test("1")
是正确的,所以只需为两者使用两个正则表达式:
return /^[a-zA-Z]*$/img.test(value) || (/[a-zA-Z]/img.test(value) && /^[a-zA-Z0-9]*$/img.test(value))
或者像这样:
return /^[a-zA-Z]*$/img.test(value) || (/^[a-zA-Z0-9]*$/img.test(value) && !/^[0-9]*$/img.test(value))
注意:如果你把i放在正则表达式(img)之后,你只需要把a-z或A-Z放在后面,它不区分大小写。注意:这些正则表达式允许空字符串"。
我认为您可能需要对仅数字情况进行正面字母数字检查和负面检查。
$.validator.addMethod("atLeastAletter", function(value) {
return /^[a-zA-Z0-9]+$/img.test(value) && ! /^[0-9]+$/img.test(value)
},"Must contain at least a letter and/or number(s). No other characters are allowed");
- 如何使用jquery Validation验证Formspread
- 正在将base64 jpeg从input-type=file上传到服务器
- 如何使用input-tage上传图片并查看在laravel中上传的文件预览
- $(input[]).仅在firefox中出现每个抛出语法错误
- 我如何在INPUT TEXT中使用这个Javascript和jQuery
- 如何使用keyup或input进行操作?javascript(jQuery)
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- 无法使用 $('input[name=“rate”]').focus() 聚焦文本框;方法
- getDocument by id/get input text from button dons'不起作用
- 选中复选框时,DOM不显示element.input.checked和ng
- jquery validation addMethod不起作用
- $(e.target).find和template.find('input').value之间有什么区别
- Javascript IBAN Validation.检查德语或奥地利 IBAN
- 单击表单的“提交”按钮时,获取表单中的所有INPUT和ACTION标记
- 当绑定到Date()-对象时,如何格式化input[time]的值
- AngularJS:如何访问自定义指令中的input[date]min属性
- Angular JS validation
- $(input).blur() & $(input).focusout
- JavaScript validation and cookies
- RegEx for jQuery Input Validation