gpt4 book ai didi

javascript - 字符串返回语句JS

转载 作者:行者123 更新时间:2023-11-30 15:10:37 25 4
gpt4 key购买 nike

我正在做一个 JS 练习,它半工作,但是当最后一个条件满足时它不返回语句,只返回一组空的括号。我不太清楚为什么,但感谢任何帮助!

function isItANum(str) {
var phonenum = str.replace(/[^0-9]+/g,"");

if(str.length===11 && str.indexOf(0)===0) {
str = str;

} else if (str.match(/[a-z]/i)) {
str = phonenum;

} else {
str = "Not a phone number";
}

return str;
}

isItANum("hey");

最佳答案

只需按顺序逐步完成计算。

首先,hey 中没有数字,因此变量 phonenum 在到达 str.replace(/[^0 -9]+/g, "");.

其次,您检查长度是否为 11,以及第一个字符是否不是 0。失败了,所以它进入了 else if

第三,hey匹配正则表达式/[a-z]/i,所以str设置为phonenum .

第四,str(现在是phonenum)被返回,并且是一个空字符串。

要实际返回“不是电话号码”,只需完全删除else if;非数字将已经被第一个正则表达式剥离。这样,当 if 失败时,它将直接转到 else。您可以在同一条件中组合长度和起始 0 验证。

请注意,您实际上可能正在寻找正则表达式 /^[a-z]/i 以确保它仅包含小写字符(注意起始克拉)。就其值(value)而言,第一个 if 计算是不必要的,因为 str 已经 完全等于 str

这可以重写如下:

function isItANum(str) {
var phonenum = str.replace(/[^0-9]+/g,"");
if (str.length === 11 && str.indexOf(0) === 0 && str.match(/[^a-z]/i)) {
str = phonenum;
} else {
str = "Not a phone number";
}
return(str);
}

console.log(isItANum("hey"));
console.log(isItANum("111111111"));
console.log(isItANum("01111111111"));

希望对您有所帮助! :)

关于javascript - 字符串返回语句JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45157617/

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