javascript - Google 为美国地址设置自动完成 Angular 模式验证
问题描述
出于某种原因,我无法找出正确的正则表达式来处理从 Google Places Autocomplete 插件中选择的验证地址。我希望地址通过以下约束的验证:
- 必须以数字开头
- 单元/apt 编号是可选的
- 必须以“美国”结尾
有效地址示例: 284 5th Ave, Chicago, IL, USA 284 Fifth Ave, Chicago, IL, USA 284 Fifth Ave Unit 203, Chicago, IL, USA 284 Fifth Ave Apt 203, Chicago, IL, USA
我可以使用以下正则表达式得到有效响应,但最后不需要“USA”:
Validators.pattern(/^[0-9]+[A-z0-9 ,]$/i)
一旦我在其中添加 USA,它就会停止验证:
Validators.pattern(/^[0-9]+[A-z0-9 ,]+(usa)$/i)
Validators.pattern(/^[0-9]+[A-z0-9 ,]+usa$/i)
验证是这样实现的:
<span class="field-validation-error" *ngIf="AddressForm.controls['location'].hasError('pattern') && AddressForm.controls['location'].touched">Please select a valid address.</span>
我意识到这是一个非常基本的正则表达式,因此任何改进它的建议都会得到极大的重视。
解决方案
推荐阅读
- html - 如何在 Scrapy 中使用 xpath 来抓取没有类或属性的标签?
- javascript - 在不使用正则表达式的情况下剪切一段 HTML?
- django - Saleor + Vue.js
- flutter - 我的主题无法正常工作,谁能找到我的解决方案?
- sql - Google BigQuery - 根据另一列中的值减去一列的 SUM
- javascript - ECDsaCng 在 Windows 上通过 C# 验证来自 Android WebAuthn 的数据椭圆曲线签名
- sql - 有没有办法使用 VBA 来更改 Access 查询的字段?
- php - 如何在 PHP 中从数据库中检索(查看)图像?
- javascript - 在 google kickstart 中,我怎么知道为什么我通过了测试集 1 而失败了测试集 2?
- java - Bundle.toString() 在 onActivityResult() 中不起作用