[解決済み] マッチを使用した正規表現によるYup検証問題
2022-02-19 06:41:51
質問
そこで、以下のようなバリデーションを うん :
const myValidtion = yup
.string()
.trim()
.matches(/[abcdefghijklmnopqrstuvwxyz]+/ , 'Is not in correct format')
.required();
ということで、これなら合格です。
hello world
予想通りです。しかし、私が混乱しているのは、なぜこれもパスするのかということです。
hello WORLD
あるいは、これもパスします。
hello ,&$#$ world
一方、無効な文字だけを入力する場合、例えば
*%$&#$($#
というエラーが表示されます。つまり、次のような場合にのみエラーが発生します。
すべて
が無効であることを示します。
私が探しているのは、Yup matchesメソッドを使って、ユーザーが例えば.NETを入力した場合、パスしない方法です。
hello ,*&) world
どなたか教えてください。
どのように解決するのですか?
正規表現は、文字列全体をカバーする必要があります。
^
と
$
で、文字列の開始と終了を意味します。
/^[abcdefghijklmnopqrstuvwxyz]+$/
それ以外の場合は、文字列の一部にマッチします。そのため、良い文字と悪い文字が混在している場合はマッチしますが、すべての文字が悪い場合は失敗します。
このように文字範囲を指定することで、正規表現を短くすることができます。
/^[a-z]+$/
これを使用することができます オンラインツール を使用して正規表現を構築し、テストすることができます。
関連
-
[解決済み】TypeError: $(...).DataTable は関数ではありません。
-
[解決済み】document.getElementByIDは関数ではありません。
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】JavaScriptのinnerHTMLで要素が更新されない
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】Kendo Observable Bindingと併用する場合、Kendo Switch Labelsを変更することは可能ですか?[Kendo-UI]です。
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み] forEachループでasync/awaitを使用する
-
[解決済み] 正規表現を使用した電話番号の検証方法
-
[解決済み] JSで文字列が正規表現にマッチするかどうかをチェックする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】Reactのeslintエラーはpropsの検証で見つからない
-
[解決済み】DOMException: サポートされているソースが見つからなかったため、読み込みに失敗しました。
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み] [Solved] Uncaught Invariant Violation: 前のレンダリング中よりも多くのフックをレンダリングする