首先道歉是有点朦胧。我需要创建一个测试来检查输入字段的值是否为。
我目前使用/[^A-Za-z0-9 ]/.test(document.form.Serial.value)
进行测试,以查看Serial的值是否仅为字母数字。
现在,如果设置了一个附加字段,Serial必须是'i'或'I',那么剩下的字符必须都是数字。我曾经考虑过用子串做这个,但看起来有点长且不必要。
非常感谢人们给予的任何建议!
答案 0 :(得分:3)
如果你想测试字符串是以i还是I开头,然后只包含数字,你可以使用正则表达式,例如:
/^[iI][0-9]+$/
或者,对于不区分大小写的匹配:
/^i[0-9]+$/i
基本上,这将匹配:
^
i
[0-9]
[0-9]+
$
答案 1 :(得分:2)
您可以尝试以下代码
var test_value = false
if (document.form.Additional_Field.value) {
test_value = /^(i|I)[0-9]+/.test(document.form.Serial.value) }
else {
test_value = /[A-Za-z0-9]+/.test(document.form.Serial.value) }
如果序列是字母数字或 Additional_Field 的值为true,将导致 test_value 设置为 true 并且序列以 i 或 I 开头,任意数量的数字, test_value 设置为 false 否则。
答案 2 :(得分:0)
为什么不打破这个问题。您有两个有效输入,因此用于语法检查输入的模式将是:
/^([iI][0-9]+)|([A-Za-z0-9]+)$/
然后,您有一个单独的,更简单的问题,即根据表单上其他控件的状态确定验证的输入是否合适。