在我的程序中基本上只允许使用包含字母“IOSHZXN”的单词 我试图找出一种方法,你可以混合字母,它会识别它匹配。 例如,单词SHINT不匹配,因为它有一个T,但单词SHINX匹配,因为它只包含列出的字母组合(IOSHZXN)
<?php
$word = "IOSHZNX";
$charactersallowed = "IOSHZXN";
if (preg_match('/IOSHZXN/', $word)) {
echo "YES";
} else {
echo "NO";
}
?>
任何帮助将不胜感激..
答案 0 :(得分:2)
您应该使用:
if (preg_match('/^[IOSHZXN]+$/', $word)) {
^
和$
确保字符串只是字母IOSHZXN
的组合。
答案 1 :(得分:1)
你可以这样做:
它匹配任何不其中一个字母并返回相反的内容:
if (!preg_match('/[^IOSHZXN]+/', $word)) {
echo "YES";
}
此外,如果您希望它不区分大小写,可以使用:
if (!preg_match('/[^IOSHZXN]+/i', $word)) {
echo "YES";
}
[^...]
匹配括号内未定义的任何内容。+
继续搜索整个字符串。i
不关心字母是否大写。