开发者问题收集

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