如何识别字符串中的第一个字符是否是Javascript中的数字

时间:2018-04-16 13:56:13

标签: javascript arrays string parsing

当给出诸如

之类的字符串时
address = "12345 White House Lane" 

有没有办法确定字符串的第一个字符(上例中的“1”)是数字还是字符?在我的情况下,我需要能够识别它是否是一个数字,如果是,则削减地址的数字部分(只留下街道名称)。

我尝试过使用isNaN功能

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

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

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

但这似乎只是抛出我不完全理解的类型错误。

2 个答案:

答案 0 :(得分:5)

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



var address = "12345 White House Lane";

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




答案 1 :(得分:0)

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



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"}