preg_match を使用して、すべての通常の文字と i アクセント付き文字 (ï) のみを受け入れるにはどうすればよいですか?
preg_match('#^[ a-zA-Z0-9\[\]()-.!?~*]+$#', $string);
ありがとう!
preg_match を使用して、すべての通常の文字と i アクセント付き文字 (ï) のみを受け入れるにはどうすればよいですか?
preg_match('#^[ a-zA-Z0-9\[\]()-.!?~*]+$#', $string);
ありがとう!
既存の文字クラスの最後に追加するだけです...
<?php
// without the accented i
// returns 0, no match :(
$string = "abcï";
echo preg_match('#^[ a-zA-Z0-9\[\]()-.!?~*]+$#', $string);
// adding the accented i to the end of the character class
// returns 1, a match!
$string = "abcï";
echo preg_match('#^[ a-zA-Z0-9\[\]()-.!?~*ï]+$#', $string);
?>
ユニコードに一致する場合は、/u (ユニコード) フラグを設定してから、範囲にユニコード文字を含める必要があります。
preg_match('#^[ \x{00EF} a-z A-Z 0-9 \[\]()-.!?~*]+$#u', $string);
ここにユニコード文字の完全なリストがあります
Unicode プロパティを使用します。
preg_match('#^[\pL\pN \[\]().!?~*-]+$#', $string);
\pL
任意の言語の任意の文字を
\pN
表します 任意の言語の任意の数字を表します