当给出诸如
之类的字符串时address = "12345 White House Lane"
有没有办法确定字符串的第一个字符(上例中的“1”)是数字还是字符?在我的情况下,我需要能够识别它是否是一个数字,如果是,则削减地址的数字部分(只留下街道名称)。
我尝试过使用isNaN功能
if(isNaN(address[0]){
//Do this or that
}
但我被告知,它对于广泛使用来说不够可靠。还被告知我可以使用类似于
的正则表达式函数if(address.matches("[0-9].*")){
//Do this or that
}
但这似乎只是抛出我不完全理解的类型错误。
答案 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"}