-2

PHPに関するヘルプが欲しいです。文字列 ($fullname) があるとします。「Firstname_Lastname」の形式であることを検証したいと思います。たとえば、「Nathan Phillips」や「Nathan122」などではなく、「Nathan_Phillips」であることを確認してください。

前もって感謝します!:-)

------------ 編集 ------------- みんなありがとう!なんとかそれができました。また、数値フィルターを追加しました。関数は次のとおりです。

function isValidName($name)
{
    if (strcspn($name, '0123456789') != strlen($name))
        return FALSE;
    $name = str_replace(" ", "", $name);
    $result = explode("_", $name);
    if(count($result) == 2)
        return TRUE;
    else
        return FALSE;
}

使用例:

if(isValidName("Test_Test") == TRUE)
    echo "Valid name.";
else
    echo "Invalid name.";

再度、感謝します!

4

1 に答える 1

2

たぶん、次のようなことを試してください:

function checkInput($input) {
    $pattern = '/^[A-Za-z]{2,50}_[A-Za-z]{2,50}/';
    return preg_match($pattern, substr($input,3), $matches, PREG_OFFSET_CAPTURE);
}

これは、2 ~ 50 文字の英字、アンダースコア、2 ~ 50 文字の英字を含む文字列を受け入れます。

私は正規表現が得意ではないので、誰かが欠陥を見つけたら修正をお願いします。

特殊文字 ( èíなど) がある場合、私が指定した正規表現はおそらくそれを受け入れません。また、 O'Reillyのような名前やハイフンでつながれた名前は受け付けません。これを参照してください:

名前の正規表現

名前の正規表現のすべての例外を突き止めますが、私は間違いなく正規表現が最適だと思います。

于 2012-10-30T19:08:32.313 に答える