gpt4 book ai didi

javascript - 验证不同格式的电话号码,无需正则表达式

转载 作者:行者123 更新时间:2023-12-02 13:52:01 24 4
gpt4 key购买 nike

在 JavaScript 中,我需要在不使用正则表达式的情况下验证电话号码(必须使用字符串操作)。电话号码必须采用以下格式之一:

  1. 123-456-7890
  2. 1234567890
  3. (123)4567890
  4. (123)456-7890

如果电话号码不是上面列出的格式之一,我还必须提供警报。

我只能设法让#2 工作,看起来像这样:

function len(gth) 
{
if (gth.value.length != 10)
{
alert("Telephone numbers MUST be 10 digits!");
}
}

在 HTML 中它将调用以下函数:

<p>Phone: &nbsp;&nbsp; <input id = "phone" onblur="len(this)" name = "Phone" size = "20" type = "text" maxlength = "10"> </p>

最佳答案

由于您需要一个没有正则表达式的解决方案,我相信这应该可行。

const phones = [
'123-456-7890',
'1234567890',
'(123)4567890',
'(123)456-7890',
'+61(123) 456-7890',
'12345',
'))))01/34$89.77(99'
]

function len(gth) {
if (gth.substring(3, 4) == '-' && gth.substring(7, 8) == '-') // 123-456-7890
gth = gth.replace('-', '').replace('-', '');
else if (gth.substring(0, 1) == '(' && gth.substring(4, 5) == ')' && gth.substring(8, 9) == '-') // (123)456-7890
gth = gth.replace('(', '').replace(')', '').replace('-', '');
else if (gth.substring(0, 1) == '(' && gth.substring(4, 5) == ')') // (123)4567890
gth = gth.replace('(', '').replace(')', '');

if (!isNaN(gth) && gth.length == 10) {
return true;
}
alert("Telephone numbers:" + gth + " MUST be 10 digits!");
}

phones.forEach(len)

关于javascript - 验证不同格式的电话号码,无需正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40950417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com