0

这是我的jsFiddle

它在电话方法上,没有名字之一

现在这条线对吗?如果前 3 个字母是 087,我只希望它是真的

var RightStarting3 = value.substring(0,2) == (087);


 if (BlankPass || LessThan10 ||  RightStarting3 || GreaterThan10 || (HasSpaces > 0)) 
 {

    document.getElementById('Phone').style.background = "red";
    return false;
 } 
    else {
    document.getElementById('Phone').style.background = "white";
    document.getElementById("PhoneTick").style.visibility="visible";
    return true;

 }
4

4 回答 4

3
var RightStarting3 = value.substring(0,3) === ('087');
于 2013-05-02T20:27:23.950 回答
1

value.substring(x)返回一个字符串,087并且87对 javascript 解释器的含义相同。您应该更改其中一种数据类型以使其匹配...

整数的子字符串:

var RightStarting3 = parseInt(value.substring(0,2)) == 87;

或者您要与字符串进行比较的值:

var RightStarting3 = value.substring(0,3) == "087";

其次 - 您正在ValidateName()立即调用(在您的任务中NamePass)。这真的有必要吗?页面加载时会有空值。

于 2013-05-02T20:33:48.203 回答
1

我认为使用 javascript substring(x,y) 方法,y 值是停止选择的值。因此,在您的示例中,不会选择前 3 个字符,而是选择前 2 个字符。

var a = "123";

// this returns "12"
alert(a.substring(0,2));

您可能想var RightStarting3 = value.substring(0,3) == ('087');改用。

于 2013-05-02T20:35:53.847 回答
0

KingKongFrom 的回答是正确的,我要补充一点,您应该首先确保value(无论是什么)不为 null,因为如果您尝试调用substringnull,它将引发异常并死亡。

于 2013-05-02T20:31:15.493 回答