私はネット上でさまざまなパターンを見つけました(それらをすべてテストしました)、私はページにエンコーディングを追加しましたが、何の縫い目も機能しませんでした。これは私のコードです:PHP文字列がキリル文字を含む英数字かどうかを確認しますか?
<?php header('Content-Type: text/html; charset=utf-8'); ?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<?php
$teststring="cc12cž";
$pattern = "/^[p{L}\p{M}\a-zA-Z*0-9\s\-]+$/u";
if(preg_match($pattern, $teststring))
{echo"IT IS ALFANUMERIC";}
else
{echo"ERROR";}
?>
</body></html>
これは私がZF Zend_Validate_Alnumを使用してテストを行なったし、あなたの文字列が正しく検証しているようだ
//$pattern = "/^[\p{L}\p{M}\a-zA-Z*0-9\s\-]+$/u";
//$pattern = "/^[p{L}\p{M}\a-zA-Z*0-9\s\-]+$/u"
//$pattern ='/^[a-zA-Z\p{Cyrillic}\d\s\-]+$/u'
//$pattern ="/(*UTF8)^[[:alnum:]]+$/"
//$pattern ="/^[a-zA-Z\p{Cyrillic}\p{Cyrillic}]+$/u"
@CharlotteDunois、それはそれを否定するように設定char型でなければなりません。 –
regex101の '¼'は検索文字列の一部として強調表示されません。つまり、その1文字のために正規表現全体が失敗します。 https://regex101.com/r/iY8cM3/1 –
@ DanielA.Whiteはい、私のせいです。 –