所以我有一行
var a = document.cardform.cardnumber.value.toString;
然后:
else if (a.indexOf(' ')!=0 ||a.indexOf('+')!=0 || a.indexOf('-')!=0){
这会检查用户是否输入了任何不需要的+, - 或者' '第这条线似乎引发了一个如下错误:
未捕获的TypeError:undefined不是函数。
我很困惑它告诉我的是什么。它是说未定义不是一个功能,或者说' a'是一种不兼容的数据类型?我该如何解决这个问题?
答案 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)) {