如何只允许字符串中的字符W,L和D?我写了这个
if ((strpos($input, 'w') === false)
&& (strpos($input, 'd') === false)
&& (strpos($input, 'l') === false)) {
$answer = "FALSE";
} else {
$answer = "TRUE";
}
但这仅适用于所有字符为W,L,D或 none 的字符为W,L或D.我无法弄清楚如何获取只有部分字符不正确才能发现。
例如
wwwlld = TRUE(正确)
12aab6 = FALSE(正确)
www44d = TRUE(不正确,这需要为FALSE,因为它包含' 44')
任何帮助都非常感激。
P
答案 0 :(得分:2)
这是需要regular expressions的典型示例,即preg_match function in PHP。
你可能想要使用类似下面的内容
$pattern = '/^[wdl]*$/';
这只匹配字符串开头和结尾之间的字符串,集合w,d或l中的0个或更多字符。
答案 1 :(得分:1)
您可以使用模式^[wdl]+$
:
$values = array('wwwlld', '12aab6', 'www44d');
foreach($values as $value)
{
echo $value;
if (preg_match('/^[wdl]+$/', $value))
echo " = TRUE\n";
else
echo " = FALSE\n";
}
以上输出:
wwwlld = TRUE
12aab6 = FALSE
www44d = FALSE
在线演示here。
答案 2 :(得分:0)
$subject = "wwwlld";
preg_match('/^[wdl]+$/', $subject, $matches);
echo ($matches) ? 'TRUE' : 'FALSE';
<强>输出:强>
//wwwlld = TRUE
//12aab6 = FALSE
//www44d = FALSE