一重引用符で囲まれた正規表現を使用して文字列を一致させる必要があります
- ゼロ回または 1 回出現する可能性があります
- 文字列の先頭または末尾にあってはなりません
- その前に少なくとも 1 つのアルファベットが必要です (一重引用符が表示される場合)
文字列の最小長は 2 で、最大長は 25 文字を超えてはなりません
最大 2 つのスペースを使用できます
次の質問から、文字の単一の出現のみを取得することについていくつかの助けを借りました(私の場合は一重引用符)
多かれ少なかれ単一の出現のみに一致するJavascript Regex
そしてこれを思いついた
^([^']([a-zA-Z])+(\s){0,1})+('){0,1}([a-zA-Z][^'])+$
一致するサンプル文字列
- シャノン・ドコスタ
- シャノン・メシューズ
- RCS
- J・ディコスタ
一致させないサンプル文字列
- シャノン・ドコスタ
- シャノン・ドコスタ
- Shanon Dcosta (シャノンの前のスペースまたは Dcosta の後のスペース)
- シャノン・ドコスタ」
- シャノン・ローレンス・ジェームズ・ディコスタ
- シャノン・コスタ
問題:
- 私の正規表現は、スペースで始まる文字列に一致します
- shanon d'cos と shanon d'costa には一致しませんが、shanon d'costには一致します
- 最大25文字も機能していません
これに関するヘルプ/アドバイスをいただければ幸いです。
EDIT 12-Sept-2013
文字列には、一重引用符とスペース以外の特殊文字を含めないでください