Angular2/4 电话验证
Angular2/4 Telephone Validation
我正在尝试在 Angular 2/4 中实现一个表单。有一个电话号码字段。我使用正则表达式
pattern="^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$"
在相应的输入字段中。它接受几乎所有格式,但不接受以下格式:
754-3010(本地)
(541) 754-3010(国内)
+1-541-754-3010(国际)
除此之外还应接受 +、-、( 和 ) 字符。
希望有人能帮忙
您可以使用可选的非捕获组将正则表达式的一部分设为可选。
使用
^\s*(?:\+?\d{1,3})?[- (]*\d{3}(?:[- )]*\d{3})?[- ]*\d{4}(?: *[x/#]\d+)?\s*$
^^^ ^^
请注意{1}
是多余的,您可以将其删除。
关于捕获组,如果你需要它们,你可以保留原来的,但如果你只是验证,我宁愿删除它们。
详情
^
- 字符串的开头
\s*
- 0+白spaces
(?:\+?\d{1,3})?
- 一个可选的序列:
\+?
- 可选(1 或 0)+
符号
\d{1,3}
- 任意 1 到 3 位数字
[- (]*
- 一个 -
、space 或 (
\d{3}
- 任意 3 位数字
(?:[- )]*\d{3})?
- 一个可选的序列:
[- )]*
- 0+ -
, spaces 或 )
\d{3}
- 任意 3 位数字
[- ]*
- 0+ spaces 或 -
\d{4}
- 任意 4 位数字
(?: *[x/#]\d+)?
\s*
- 0+白spaces
$
- 字符串结尾。
我正在尝试在 Angular 2/4 中实现一个表单。有一个电话号码字段。我使用正则表达式
pattern="^\s*(?:\+?(\d{1,3}))?[- (]*(\d{3})[- )]*(\d{3})[- ]*(\d{4})(?: *[x/#]{1}(\d+))?\s*$"
在相应的输入字段中。它接受几乎所有格式,但不接受以下格式:
754-3010(本地)
(541) 754-3010(国内)
+1-541-754-3010(国际)
除此之外还应接受 +、-、( 和 ) 字符。
希望有人能帮忙
您可以使用可选的非捕获组将正则表达式的一部分设为可选。
使用
^\s*(?:\+?\d{1,3})?[- (]*\d{3}(?:[- )]*\d{3})?[- ]*\d{4}(?: *[x/#]\d+)?\s*$
^^^ ^^
请注意{1}
是多余的,您可以将其删除。
关于捕获组,如果你需要它们,你可以保留原来的,但如果你只是验证,我宁愿删除它们。
详情
^
- 字符串的开头\s*
- 0+白spaces(?:\+?\d{1,3})?
- 一个可选的序列:\+?
- 可选(1 或 0)+
符号\d{1,3}
- 任意 1 到 3 位数字
[- (]*
- 一个-
、space 或(
\d{3}
- 任意 3 位数字(?:[- )]*\d{3})?
- 一个可选的序列:[- )]*
- 0+-
, spaces 或)
\d{3}
- 任意 3 位数字
[- ]*
- 0+ spaces 或-
\d{4}
- 任意 4 位数字(?: *[x/#]\d+)?
\s*
- 0+白spaces$
- 字符串结尾。