用于验证 JavaScript 中的条件的正则表达式
Regular Expression to verify condition in JavaScript
我是 JavaScript 的新手。我尝试在if
条件下使用正则表达式。这是我的代码:
var location1 = 3;
var location2 = 4;
var location3 = 5;
var guess;
var hits = 0;
var guesses = 0;
var string = "";
var reg = /[0-6]/i;
var isSunk = false;
while (isSunk == false) {
guess = prompt("Ready, aim, fire! (enter a number 0-6): ");
if (guess != reg || guess ==string) {
alert("Please enter a valid cell number!");
} else {
guesses = guesses + 1;
if (guess == location1 || guess == location2 || guess == location3) {
hits = hits + 1;
alert("HIT!");
if (hits == 3) {
isSunk = true;
alert("You sank my battleship!");
}
} else {
alert("MISS!");
}
}
}
var stats = "You took " + guesses + " guesses to sink the battleship, " + "which means your shooting accuracy was " + (3 / guesses);
alert(stats);`
我的问题是在这种if (guess != reg || guess ==string)
条件下。它没有像我预期的那样工作。我想要那个函数prompt
只允许 0,1,2,3,4,5,6 个数字,没有任何单词和空格。但实际上,如果我输入所需的数字之一(例如 1),它将不允许执行进一步的操作。我通过 stackoverflow 阅读了很多关于 Javascript 中的正则表达式(转换正则表达式、正则表达式、基本正则表达式)等内容,但我找不到问题的答案。所以问题是:
如果 JavaScript 已经声明为变量,如何在 JavaScript
if
条件中设置正确的正则表达式?
要测试字符串是否与正则表达式匹配,您不能只使用标准比较运算符来比较它们。应该起作用的是
if (reg.test(guess)) {
....
}
正则表达式[0-6]i
也匹配字符串"hello1
,因为里面有一个。你想要的可能是像^[0-6]$
这样的东西。顺便说一下,空字符串的测试也是不必要的,因为""
与该表达式不匹配。
解释:^
和$
分别匹配字符串的开头和结尾。用这些符号构建正则表达式本质上意味着整个字符串(而不仅仅是子字符串)必须与表达式匹配。
正则表达式在这里不是正确的工具。
guess = prompt("Ready, aim, fire! (enter a number 0-6): ");
guess = +guess; // Convert *guess* to number, sets to NaN if not numeric
if (guess >= 0 && guess <= 6) { // check if number is in range (NaN will fail)
....
相关文章:
- 正则表达式条件来删除元素
- 较短的正则表达式,按2个条件拆分,外部有空格
- JavaScript正则表达式多重条件
- 为什么'我的条件语句使用javascript中的正则表达式
- Javascript 中的正则表达式:当满足条件时,将减号替换为逗号+减号
- 正则表达式.在满足条件之前,避免匹配字符串
- 单个正则表达式,用于获取具有多个条件的多个模式
- Javascript 正则表达式条件语句,当在字符串中检测到两个相同字符时
- 用于验证 JavaScript 中的条件的正则表达式
- 如何为此条件编写正则表达式
- 如何在 JavaScript 中编写条件正则表达式
- 使用 javascript 正则表达式解析以 “$” 开头的字符串和其他条件
- 如何创建具有 2 个可能条件的正则表达式
- 在正则表达式中指定复杂条件
- 为什么正则表达式模式不符合 javascript 数据类型的条件
- javascript正则表达式匹配字符串条件,包括特殊字符
- 正则表达式有条件地去除 HTML 标记内容
- 多条件正则表达式JavaScript拆分
- 条件正则表达式模式
- 与“;OR条件“-正则表达式