javascript - 如何使用正则表达式从地址字符串中删除建筑物编号和入口?
问题描述
我有各种地址字符串,我想从建筑物编号部分自动清除,只留下街道地址。
例子:
- 输入:
"15A W 131st St, New York, NY 10037, USA"
- 想要的输出:
"W 131st St, New York, NY 10037, USA"
- 输入:
"125 E 145th St, New York, NY 10037, USA"
- 想要的输出:
"E 145th St, New York, NY 10037, USA"
- 输入:
"3 Rue Auguste Bartholdi, 75015 Paris, France"
- 想要的输出:
"Rue Auguste Bartholdi, 75015 Paris, France"
我尝试过使用String.prototype.match()
以下正则表达式:/[^0-9\s].+/
它可以很好地删除数字,但如果建筑物有字母入口(35A、20B 等)则不起作用。使用字母字符让我对字符串的其余部分产生了问题。
解决方案
我的主要问题是我试图匹配字符串的其余部分并保留它,String.match()
而不是定位字符串的开头并用String.replace()
.
String.replace()
使用这种态度时解决的一些正则表达式:
address.replace(/^\d+[A-z]?\s/, '')
address.replace(/^[^\s]+\s/, '')
String.split()
另一种解决方案是使用该方法来定位空白。这意味着转换为单词数组,删除第一个单词,并将数组加入一个新的干净字符串。
代码:
let newAddress = fullAddress.split(" ").slice(1).join(" ");
推荐阅读
- asp.net - 从目录发布表单时回发或回调参数无效
- python - KeyboardInterrupt 没有捕获异常
- cdo-climate - 将合并的 nc 文件保存在 NCL 上
- c# - 如何使用 group by 和 order by LINQ DataTable 以删除重复数据
- docker-compose - 带有 rtsp 的 Docker-compose.yml
- c# - 使用凭据表单 C# winform 将 powershell 命令发送到远程服务器
- android - 如何在 android 手机上的用户凭据中使用 .pfx 证书安装?
- javascript - 在数组中找到两次出现的值,中间或相邻没有任何内容
- xcode - 是否可以在 Appstore 上发布带有 Unity 警告的应用程序
- javascript - 托管上的 CSRF 令牌不匹配