我是JavaScript新手。我試圖在if
條件下使用正則表達式。 這裏是我的代碼:使用JavaScript驗證條件的正則表達式
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中的正則表達式(Convert the Regular expression,Regular expression,Basic regular expression)以及更多,但我無法找到我的問題的答案。 所以,問題是:
如何設置適當的正則表達式在JavaScript
if
條件,如果它已經聲明爲變量?
你需要根據它的值測試你的正則表達式,http://www.w3schools.com/jsref/jsref_regexp_test.asp –
'guess!= reg'在這裏你比較一個用戶字符串和正則表達式對象;這是不正確的,你需要'reg.test(guess)'你還需要錨定正則表達式'/^[0-6] $ /'使它匹配1位數字 –
Murtaza,實際上,我已經完成了這裏http://www.regexr.com和一切都很好 – fuser