2017-04-20 14 views
1

名前の検証のために角度コントローラに正規表現を導入しようとしています。私は、文字、スラッシュ、ハイフン、名前の間に1つのスペースしか入れることができません。文字列の後に空白を入れることはできません。 "John- \ Doe"は有効ですが、 "John- \ Doe- \ Do- \ e Doe"は有効ですが "John- \ Doe"、単語間に2つ以上のスペースがあり、 "John- \ Doe"最後の単語の後に1つ以上のスペースが無効です。^[a-zA-Z - ] +([a-zA-Z - ] +)* $ 私の正規表現は名前の間のスペースを防いでいますが、どうすればよいか分かりません最後の単語の後の1つのスペースを検証します。私は試しました:[^ a-zA-Z/- ] + | [\ s] {2、}それは私のためには機能しません。どんな指針も大変ありがとうございます。名前の後に余白を防ぐための角括弧

+0

しかし、これはすべてjavascriptで処理されるため、私は残念ではありません。 – Eddie

+0

私は問題が何であるかは分かりません。あなたはあなたの正規表現でハイフンをエスケープしました。どうして?バックスラッシュにマッチさせますか?試してみてください['///[AZA-Z\\-]+(?:\s[a-zA-Z\\-]+)*$/'](https://regex101.com/r/yphOH1/1)。このパターンで検証されない文字列を表示し、理由を説明してください。 –

+0

コメントはありませんか? –

答えて

1

ユーザーのために修正することはできますか?もしそうなら、これはトリムメソッドのための良いアプリケーションです。それは少しずさんですがhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

"John Doe ".trim() == "John Doe" // true 

は常に...何供給したことはトリミングバージョンと等しいかどうかを確認するためのチェックを行うことができます..例えば"John Doe ".trim() == "John Doe"falseだった場合は、のスペースの前後にあることがわかります。

+0

こんにちは、私はユーザーのためにそれを修正することはできません。残念ながら、.trim()はうまくいきません。私は実際に私の特定のシナリオで言葉の後に白い空白に対して検証することはできないと思う。 – Eddie

+0

まあまあです。チャンスが得られたら、私はその質問を詳しく見て、私ができることを見てみましょう。がんばろう! –

+0

ありがとう!とても有難い! – Eddie

関連する問題