2016-08-07 26 views
3

私はネット上でさまざまなパターンを見つけました(それらをすべてテストしました)、私はページにエンコーディングを追加しましたが、何の縫い目も機能しませんでした。これは私のコードです: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" 
+0

@CharlotteDunois、それはそれを否定するように設定char型でなければなりません。 –

+0

regex101の '¼'は検索文字列の一部として強調表示されません。つまり、その1文字のために正規表現全体が失敗します。 https://regex101.com/r/iY8cM3/1 –

+0

@ DanielA.Whiteはい、私のせいです。 –

答えて

3

を試みたものです。私はtheir validation techniqueが非常に簡単であり、それはregexpを含まない表示されるものと

$validator = new Zend_Validate_Alnum(); 
if ($validator->isValid('cc12cž')) { 
    // value contains only allowed chars 
    echo "IT IS ALFANUMERIC"; 
} else { 
    echo "ERROR"; 
} 

:行の先頭である

if (!is_string($value) && !is_int($value) && !is_float($value)) { 
    $this->_error(self::INVALID); 
    return false; 
} 
+0

ありがとう、私は提供された機能を使用しています。特殊文字がある場合にチェックを追加し、存在する場合はfalseを返すことは可能ですか? ""%$ ## @@!@ $%+ _ {} | ?? 123 >><" – Dime

+1

@Dimeのように文字列がこれを使用しているかどうか最初にチェックします方法。これに合格した場合は、regexを使用して別のチェックを追加するか、不要な他の文字を含むリストを除外ルールとして追加することができます。 –

関連する問題