gpt4 book ai didi

Javascript RegExp 多重规则

转载 作者:行者123 更新时间:2023-12-03 06:48:26 25 4
gpt4 key购买 nike

目前,我正在尝试编写一段代码来验证我的网站联系信息,我在一个可能是一些小问题上被困了 3 个小时,但我就是无法弄清楚。

我遇到的问题出现在 else 元素内的第二个 IF 元素中,我想让正则表达式搜索所选字符串中的数字 [/d] 和空格 [/s],但我的代码始终只看到一条规则,并忽略另一种。

我想错误是我写得不好,但我不知道怎么写。请给我一些指示,我在哪里犯了错误。

        if (sFirstname == null || sFirstname == "") {
alert("First name must be filled out");
return false;
}
else {
if (/\d/, /\s/i.test(sFirstname)){
alert("Only Letters can be used in First name")
return false;
}
else {
alert("true")
return true;
}
}

最佳答案

我想改变很多小事情:

只要 sFirstname 不为假,

!sFisrtname 就会为 true ("", 0,null未定义,...)

使用else if ...而不是else { if ... }

语句 /\d/,/\s/i.test(...) 将被评估为:

 /\d/,
/\s/i.test(...)

与:

相同
var a = /\d/;
var b = /\s/i;
a, (b.test(...))

你想要的是正确的 /[\d\s]/.test(...) 如果有一个sFirstname 中的数字或空格。您可以考虑更改逻辑选项而不是 op-out,例如:/[^a-zA-Z]/.test(...)。仅允许 a-z 和 A-Z

我让函数返回错误而不是警告它:

console.log(checkFirstName('John')); // "" (no error)
console.log(checkFirstName('John 42')); // "Only a-z can be used in first name"

这也可以用在 if 语句中:

var error = checkFirstName('John');
if (error) {
alert(error);
}
else {
alert('Everything is fine!');
}

函数:

function checkFirstName(sFirstname) {
if (!sFirstname) {
return 'First name must be filled out';
}
else if (/[\d\s]/.test(sFirstname)) {
return 'Only letters can be used in first name';
}
else {
return "";
}
}

关于Javascript RegExp 多重规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37616012/

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