检查PHP中的字符是否在单词中

时间:2014-02-12 02:09:19

标签: php regex

在我的程序中基本上只允许使用包含字母“IOSHZXN”的单词 我试图找出一种方法,你可以混合字母,它会识别它匹配。 例如,单词SHINT不匹配,因为它有一个T,但单词SHINX匹配,因为它只包含列出的字母组合(IOSHZXN)

<?php

        $word = "IOSHZNX";

        $charactersallowed = "IOSHZXN";

        if (preg_match('/IOSHZXN/', $word)) {
            echo "YES";
        } else {
            echo "NO";
        }



    ?>

任何帮助将不胜感激..

2 个答案:

答案 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不关心字母是否大写。