javascript - Javascript字符串操作 - 电话号码验证
问题描述
编辑:我不允许为此使用正则表达式!
我有一项任务是通过 javascript 中的字符串操作来验证 4 种不同类型的电话号码。我必须能够将最终电话号码打印到“收据”中,因为这是 HTML 中的披萨摄入表格。
减去此验证后,我的所有代码都在工作。这些是我需要验证的电话号码类型: 1. ddd-ddd-dddd 2. dddddddddd 3. (ddd)ddddddd 4. (ddd)ddd-dddd
如果号码不符合要求的格式,我还必须提供提醒
解决方案
你可以试试这个小伙伴。
^\(?\d{3}\)?\-?\d{3}\-?\d{4}$
解释
^
- 锚定到字符串的开头。\(?\d{3}\)?\-?
这将匹配 (3 digit number), (3 digit number)- , 3 digit number。\d{3}\-?
- 这将匹配 3 位数字,3 位数字后跟-
.\d{4}
- 这将匹配任何 4 位数字。$
- 锚定到字符串的末尾。
例子
const regex = /^\(?\d{3}\)?\-?\d{3}\-?\d{4}$/gm;
const str = `999-999-9999
(123)123-1454
1234567890
(123)1231234
a122-123-1234
(123)-123-12345
(123)-(123)-(1234)`;
let m;
while ((m = regex.exec(str)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
console.log(`Found match, group ${groupIndex}: ${match}`);
});
}
推荐阅读
- java - 一旦它们是空闲的java,将任务分配给现有线程
- javascript - 正则表达式 - 黑名单所有电子邮件 Javascript
- amazon-web-services - 通过 Logstash 或 lambda 将数据从 dynamodb 插入到 elasticsearch 的正确方法是什么?
- spring-amqp - 使用SpringAOP拦截发送和接收消息
- node.js - 没有从远程服务器收到我的路由的响应
- php - 如何将产品 SKU 添加到 WooCommerce 新订单电子邮件主题
- neural-network - StyleGAN 生成图像中的伪影
- docker - Docker conatiner 中的 Ansible 无法通过 ssh 连接到 Hetzner 主机
- python - 根据键对字典进行排序
- angular - 如何使用角度的传单地图将角 45 的弧放置在半径为 3 公里的圆内