2016-04-27 9 views
1

こんにちは私はRegExを使用して、数字、文字、スペースのみで最大18文字まで入力できます。RegExで行番号とスペースは空白にすることはできません

文字列がスペースで始まっているか、行内に2つのスペースがあるかどうかを確認するにはどうすればよいですか?

/^[0-9A-Za-z\s]{1,18}$/ 

私はこの正規表現をネイティブのjavascript(jqueryではなく)とPHPで使用しています。

+2

正規表現以外の別のチェックを行うと本当に簡単です... – CBroe

+0

行内に2つの空白があるとしたら、文字列のどこにあっても構いませんか? –

+0

'\ s'は*スペースのみ*と一致しません(http://php.net/manual/en/regexp.reference.escape.php) – fusion3k

答えて

1

あなたは、文字列がスペースで始まっまたは2つの以上の連続したスペース、のようなものがあるかどうかを確認するために、負のlook-aheadを使用することができます。

^(?!.*\s{2,})(?!^)[0-9A-Za-z\s]{1,18}$ 
+0

提案された正規表現は空白で始まり、行内に2つの空白と合計18文字を持つ '' testerert 12v3k8 ''または' 'hey is fine''を選択しますか? – Redu

+0

いいえ、彼らは一致しません、これはOPが望んでいる、私は推測します... –

+0

"文字列がスペースで始まるか、2つ以上の連続するスペースがあるかどうかを確認するためにネガティブ先読みを使用できます。 "それでは、なぜ、"ちょっといいですか "という言葉を選んでいないのですか? ( "is"と "this"の間に2つの空白があります。このテキストエリアは2重の空白を1つに変換します...) – Redu

0
(?:(?![ ]{2}).)+ 

この正規表現を使用します。これはあなたの問題を解決するかもしれません。

関連する問題