使用RegEx根据javascript规则进行变量验证



有什么方法可以改进这段代码吗?

我想要不以数字开头且不包含特殊字符的变量,例如(!@#$%^(当我加入这些RegEx模式时,当变量包含特殊字符时,它无法正常工作

let text = prompt('add variable name');
let pattern = /^[^0-9]/g;                    // check if it starts with number
let condition = pattern.test(text);
if (condition == true) {
pattern = /[^a-zA-Z0-9$_]/;                //check if it contains special characters (!@#$%^*) except ($ , _)
condition = pattern.test(text);
if (condition == false) {
console.log("Variable name is Valid");
}
else {
console.log('Variable name Is Not Valid');  //includes special character
}
}
else {
console.log('Variable name Is Not Valid'); //starts with number
}

使用condition已经是一个布尔值,因此可以使用if (condition)

您可以使用一种模式来重写代码,该模式检查字符串是否以数字开头,并在字符类中指定所有允许的字符,并匹配到字符串$的末尾

在这种情况下,您可以将范围缩短为单词字符w和美元符号$

let text = prompt('add variable name');
let pattern = /^(?!d)[w$]+$/;
let condition = pattern.test(text);
if (condition) {
console.log("Variable name is Valid");
} else {
console.log('Variable name Is Not Valid');
}

相关内容

  • 没有找到相关文章

最新更新