単一のハイフンとシングルスペースは、単語の中でのみ使用できますが、単語の先頭や末尾にはできません。正規表現を使用したPHP preg_match:単語間のハイフンと空白は1つだけです
if(!preg_match('/^[a-zA-Z0-9\-\s]+$/', $pg_tag))
{
$error = true;
echo '<error elementid="pg_tag" message="TAGS - only alphanumbers and hyphens are allowed."/>';
}
私は
---stack---over---flow---
stack-over-flow- stack-over-flow2
stack over flow
の下に、これらの入力を受け入れたくないだけこれらは、
stack-over-flow stack-over-flow2 stack-over-flow3
stack over flow
stacoverflow
おかげで許容されています。
入力を正規化する、つまりすべての連続する空白とダッシュを1つに減らし、最初と最後から削除する方が簡単でしょう。 –
@Felix Kling:このアイデアをありがとう!どのように入力を正規化するのですか? – laukok
私の答えを見てください。 –