0

以下のような正規表現で、どのようなエラー(テキストが短い、長い、無効な文字であるか)が一致の失敗を引き起こしたかどうかを調べる方法はありますか?

regexes = {
    name: /^[a-zA-Z0-9_ -]{3,32}$/,
    title: /^[a-zA-Z0-9_ -]{3,128}$/,
    text: /^[\w' -]+$/,
    email: /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,
    phone: /^[0-9-\/]{3,32}$/
};
4

1 に答える 1

2

いいえ、正規表現は文字列と一致しているかどうかはわかりませんが、失敗した理由はわかりません。

それを知りたい場合は、正規表現を分割し、さまざまな実行ですべての条件をテストする必要があります。例えばあなたの名前のパターン/^[a-zA-Z0-9_ -]{3,32}$/

  1. 最小の長さ:/^.{3,}/これが失敗している場合は短すぎます。

  2. 最大長:/.{0,32}/これが失敗している場合は長すぎます。

  3. 有効な文字:/^[a-zA-Z0-9_ -]*$/これが失敗した場合、文字列には許可されていない文字が含まれます。

于 2012-11-20T07:08:58.243 に答える