0

试图在表单中添加一些验证,但它一直表现得好像正在验证的数据是无效的,即使它是有效的!

if (document.getElementById("mileageNumber").value  == /^[0-9]+$/)
{
    if (document.getElementById("vehicleNumber").value  == /^[0-9]+$/)
    {
        <Desired Action>
    }
    else
    {
        alert("Please Enter Numbers Only");
    }
}
else
{
    alert("Please Enter Numbers Only");
}

谁能看到我做错了什么?

4

3 回答 3

1

您需要使用该RegExp.test方法。

/^[0-9]+$/.test(document.getElementById("mileageNumber").value);

您还可以像这样简化正则表达式:/^\d+$/

于 2013-10-19T14:58:29.677 回答
1

您需要测试正则表达式,而不是将其评估为值。

if(/^[0-9]+$/.test(document.getElementById("vehicleNumber").value)){

    //Validation passed

}
于 2013-10-19T14:59:06.753 回答
0

您正在将字符串与正则表达式对象进行比较。一个正则表达式对象描述了一个正则表达式对象的结构。字符串只是一堆字符。它们根本不是一回事……永远。就像伪代码apples == carrots永远不会返回 true,string == regex也永远不会返回。它需要一个函数来测试字符串是否具有正则表达式对象所描述的结构。

您可以使用string.match( .. ).

document.getElementById("vehicleNumber").value.match( /^[0-9]+$/ );
于 2013-10-19T15:04:53.377 回答