0

我需要替换一个代码示例:OD3 - 第一个必须始终是字母字符,第二个字母数字,最后一个必须始终是数字。什么是regular expression检查和replace第一个并调节其余的正确输入?用户可以输入数字 0 而不是字母 O,所以我想立即更正它...

这就是我到目前为止所拥有的:onkeyup="this.value=this.value.replace(/[^a-zA-z]/g,'')

4

2 回答 2

1

首先,我建议只向用户指示错误,而不是替换这些值。就像是

oninput="if (! /^[a-z][a-z0-9]\d$/i.test(this.value) ) displayMessage('incorrect code');"

如果您肯定必须即时替换该值,则可以执行以下操作:

oninput='validateValue()';
...
function validateValue() {
    var val = this.value;
    if (! /[a-z]/i.test(val[0]) this.value = '';
    else if (! /[a-z0-9]/i.test(val[1]) this.value = val.slice(0,1);
    else if (! /\d/.test(val[2]) this.value = val.slice(0,2);
}
于 2013-08-02T11:42:08.320 回答
0

最好有这样的。

onkeyup="testRegex(this.value)";

不是.replace()它是.test()

function testRegex(value) {
   if(value.test(/[^a-zA-z]/g)) {
       alert("Please enter correct value");
       return false;
    }
}
于 2013-08-02T11:40:06.547 回答