JavaScript 中的 indexOf 方法
2015-03-10
142
因此我有以下行
var a = document.cardform.cardnumber.value.toString;
然后:
else if (a.indexOf(' ')!=0 ||a.indexOf('+')!=0 || a.indexOf('-')!=0){
这会检查用户是否输入了任何不需要的 +、- 或 ' 。此行似乎引发了如下所示的错误:
Uncaught TypeError: undefined is not a function.
我对它所告诉我的内容感到困惑。它是说 undefined 不是函数,还是 'a' 是不兼容的数据类型?我该如何解决这个问题?
2个回答
您需要实际调用
toString()
函数。
var a = document.cardform.cardnumber.value.toString();
现在,
a
是一个字符串,并具有方法
.indexOf()
Adjit
2015-03-10
如果您确实想使用
toString
方法,那么您需要调用它,否则
a
是一个没有任何
indexOf
方法的函数。
但您实际上不需要这样做,因为
document.cardform.cardnumber.value
已经是一个字符串。请记住,表单元素值始终是字符串。
最后,您可以使用基本正则表达式使检查变得更简单:
else if (/[-+\s]/.test(a)) {
dfsq
2015-03-10