2013-03-19 65 views
0

我試圖在php中驗證真/假開關。用戶輸入可以是「真」,「1」,「開」或「是」 - 再加上它應該不區分大小寫。爲什麼我的正則表達式只能用於「1」和「on」?regex'#/ true | 1 | on |是/ i#'只適用於第二和第三個字

test.php的:

define("REGEXP_TRUE", '#/true|1|on|yes/i#'); 

echo  preg_match(REGEXP_TRUE, "true"); 
echo "\n".preg_match(REGEXP_TRUE, "1"); 
echo "\n".preg_match(REGEXP_TRUE, "on"); 
echo "\n".preg_match(REGEXP_TRUE, "yes")."\n"; 

輸出:

[[email protected]]$ ./bin/php test.php 
0 
1 
1 
0 

回答

4

你已經把雙分隔符​​和/i#錯誤,所以其他的 「分隔符」 當時正則表達式的正常部分,和/i不區分大小寫修飾符不起作用,它只是正則表達式的一部分

它應該只是

define("REGEXP_TRUE", '/true|1|on|yes/i'); 
相關問題