在PHP中验证Cyrillic输入

Mar*_*ski 7 php localization

有没有办法(正则表达式?)检查一个字符串是否只由西里尔字母数字字符组成?

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

Nab*_*imi 7

\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 />";
    }
?>
Run Code Online (Sandbox Code Playgroud)