在PHP中验证Cyrillic输入

时间:2011-08-04 13:24:20

标签: php localization

是否有方法(正则表达式?)来检查字符串是否仅由西里尔字母数字字符组成?

我需要验证输入是否在西里尔字母的范围内,加上数字,破折号和空格

1 个答案:

答案 0 :(得分:6)

\p{Cyrillic}匹配西里尔字符(您可以使用阿拉伯语希腊语等其他字母表)

\d匹配数字

\s匹配空白字符

\-匹配破折号

<?php
    header('Content-Type: text/html; charset=utf-8'); 
    $pattern  = "/^[\p{Cyrillic}\d\s\-]+$/u";
    $subjects = array(12, "ab", "АБ", '--', '__');

    foreach($subjects as $subject){
        $match = (bool) preg_match($pattern, $subject);
        if($match)  
            echo "$subject matches the testing pattern<br />";
        else
            echo "$subject does not match the testing pattern<br />";
    }
?>