1

特定のタイプの文字列を検証する正規表現を作成したいと思います。

文字列を検証するための条件は次のとおりです。


  • 文字列には、\(バックスラッシュ)、/(スラッシュ)、:(コロン)、*(アスタリスク)、?などの文字を含めることはできません。(疑問符)、 "(二重
    引用符)、<(左山かっこ)、>(直角かっこ)、|(パイプ)

  • 文字列の最初または最後の文字としてハイフン(-)またはピリオド(。)を含めないでください。

何度も試しましたが、すべての条件を満たす単一の正規表現が必要なため、成功しませんでした。

4

2 に答える 2

1

正規表現には、いわゆる「クラス」、事前定義された、またはカスタムの文字セットが含まれる場合があります。[:alpha:]のように事前定義されているか、[0-9*。><]のようにカスタムで試してください。「^」文字を使用したクラスの否定、および「\」を前に付けて特殊文字をエスケープする方法について説明します。

于 2012-10-01T05:38:57.927 に答える
1

試す:

/^[^.\-][^\/:*?"<>|]+[^.\-]$/

編集:この正規表現は機能するはずです:

/^(?![.\-])(?:[^\\\/:*?"<>|])*[^.\-\\\/:*?"<>|]$/

しかし、ご覧のとおり、かなり読みにくく、醜いものになります。次のような関数を使用して段階的に実行する方がよいと思います。

function isValidString(str) {
  return /^[^.\-]/.test(str) &&
    /[^.\-]$/.test(str) &&
    /[^\\\/:*?"<>|]+/.test(str);
}
于 2012-10-01T05:43:31.373 に答える