7

我正在制作一个简单的表格并有一个街道地址的文本框......我要做的就是检查输入的第一个值是否是数字。

我该怎么做?

if(document.forms[0].elements[2].value.

这就是我现在所拥有的,但我不确定我应该添加什么来仅检查第一个字符。

4

3 回答 3

10

正如您在问题中所说,您只想检查第一个字符,您可以对字符串使用charAt函数来检查第一个字符是从 0 到 9 还是您想要的第一个字符的任何其他检查

可能的解决方案

var firstChar = document.forms[0].elements[2].value.charAt(0);
if( firstChar <='9' && firstChar >='0') {
      //do your stuff
}
于 2013-04-01T04:57:35.117 回答
7

这可以简单地使用isNaN. 只需在它前面放一个 bang 来检查它是否是一个数字,而不是isNaN正常使用检查它是否不是一个数字,如下所示:

var val = document.forms[0].elements[2].value;
if (!isNaN(val.charAt(0))){ //If is a number
  //Stuff
}

这也与数字作为字符串一起使用,因此需要担心引号或任何类似的东西。

于 2014-11-18T13:10:20.007 回答
1

您可以使用if (document.forms[0].elements[2].value.match(/^\d+/))来检查字段的开头是否由数字组成。

它将匹配:

0 - valid
1 - valid
1a - valid
1 a - valid
1234567 - valid
a - invalid
a1 - invalid

从字面上看,任何以数字开头的东西。

您可以将其功能扩展到if (document.forms[0].elements[2].value.match(/^\d+ +.+/))

在这种形式中,它现在需要一个数字,加上一个或多个空格,然后是其他任何内容。

0 - invalid
1 - invalid
1(space) - invalid
1 1 - valid
1 a - valid
12345 abcdef - valid

阅读有关正则表达式的更多信息以详细说明更复杂的检查。

但首先要记住,不是每个地址都有数字,而且世界上大多数国家都不使用这种写地址的格式。至于地址字段,我相信您应该将其保持打开状态,以便以用户希望的任何格式写入。

于 2013-04-01T04:56:09.190 回答