【问题标题】:How to identify if first character in a string is a number in Javascript如何识别字符串中的第一个字符是否是Javascript中的数字
【发布时间】:2018-04-16 13:56:12
【问题描述】:

当给定一个字符串比如

address = "12345 White House Lane" 

有什么方法可以识别字符串的第一个字符(上例中的“1”)是数字还是字符?在我的情况下,我需要能够识别它是否是一个数字,如果是,则去掉地址的​​数字部分(只留下街道名称)。

我尝试过使用 isNaN 函数

if(isNaN(address[0]){
    //Do this or that
} 

但有人告诉我,它对于广泛使用来说不够可靠。还被告知我可以使用类似于

的正则表达式函数
if(address.matches("[0-9].*")){
    //Do this or that
}

但这似乎只会引发我不完全理解的类型错误。

【问题讨论】:

  • 你可以用这个/^\d/.test(word)
  • word.match(/[0-9].*/) matches,你想要一个正则表达式,而不是字符串
  • word 是如何从address 派生而来的?

标签: javascript arrays string parsing


【解决方案1】:

您可以使用查找起始数字和可能的空格的正则表达式将其删除。

var address = "12345 White House Lane";

address = address.replace(/^\d+\s*/, '');
console.log(address);

【讨论】:

    【解决方案2】:

    您可以使用以下函数将其拆分为两个可识别的部分:

    const splitAddress = address => {
      let {1: number, 2: street} = address.match(/^\s*(\d*)\s*(.+)/)
      return {number, street}
    }
    
    console.log(splitAddress('12345 Main St')) //=> {"number": "12345", "street": "Main St"}
    console.log(splitAddress('Main St')) //=> {"number": "", "street": "Main St"}
    console.log(splitAddress('219 W 48th St')) //=> {"number": "219", "street": "W 48th St"}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2010-10-28
      • 2015-03-17
      • 1970-01-01
      • 2011-05-26
      • 1970-01-01
      • 2019-07-19
      • 2012-12-19
      相关资源
      最近更新 更多