🔍
空白検知(ゼロ幅スペースなどに対応した完全版) in JS/PHP
この記事はQiitaに投稿していたものです。最終更新:2021年07月15日
この記事のコードはCC0で自由に利用できます
空白や改行だけの文字列の検知には正規表現の\S
で検知したり、String.prototype.trim()
(MDN)を使用することがありますが、これだとゼロ幅スペース(Wikipedia)などの一部の空白文字は通過してしまいます。そこで、より多くの文字を検知するコードを書いたので紹介します。
JavaScriptの場合
const word = "判別する文字列";
const reg = /^[\u0009-\u000d\u001c-\u0020\u11a3-\u11a7\u1680\u180e\u2000-\u200f\u202f\u205f\u2060\u3000\u3164\ufeff\u034f\u2028\u2029\u202a-\u202e\u2061-\u2063\ufeff]*$/;
if (reg.test(word)) {
console.log("空白のみです!");
} else {
console.log("空白以外の文字が含まれています");
}
PHPの場合
$word = "判別する文字列";
$reg = preg_match('/^[\x{0009}-\x{000d}\x{001c}-\x{0020}\x{11a3}-\x{11a7}\x{1680}\x{180e}\x{2000}-\x{200f}\x{202f}\x{205f}\x{2060}\x{3000}\x{3164}\x{feff}\x{034f}\x{2028}\x{2029}\x{202a}-\x{202e}\x{2061}-\x{2063}\x{feff}]*$/u', $word);
if ($reg == 1) {
echo "空白のみです!";
} else {
echo "空白以外の文字が含まれています";
}
Discussion