Javascript语法问题

时间:2013-05-02 20:25:19

标签: javascript

这是我的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 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

要求整数的子字符串:

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

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

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

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

答案 2 :(得分: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');

答案 3 :(得分:0)

KingKongFrom的回答是正确的,我想补充一点,你应该确保value(不管是什么)首先不是null,因为如果你尝试在null上调用substring它会抛出一个异常并死亡。