JavaScript中的indexOf方法

时间:2015-03-10 22:17:47

标签: javascript indexof

所以我有一行

var a = document.cardform.cardnumber.value.toString;

然后:

else if (a.indexOf(' ')!=0 ||a.indexOf('+')!=0 || a.indexOf('-')!=0){

这会检查用户是否输入了任何不需要的+, - 或者' '第这条线似乎引发了一个如下错误:

  

未捕获的TypeError:undefined不是函数。

我很困惑它告诉我的是什么。它是说未定义不是一个功能,或者说' a'是一种不兼容的数据类型?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您需要实际调用toString()函数。

var a = document.cardform.cardnumber.value.toString();

现在,a是一个字符串,其方法为.indexOf()

答案 1 :(得分:1)

如果您确实想使用toString方法,则需要调用它,否则a是一个没有任何indexOf方法的函数。

但你真的不需要这样做,因为document.cardform.cardnumber.value已经是一个字符串了。请记住,表单元素值始终是字符串。

最后,您可以使用基本正则表达式更简单地检查:

else if (/[-+\s]/.test(a)) {