JavaScript - 12.5-20.5 を確認する正規表現を記述すると常にエラーが発生します。
typecho
typecho 2017-06-26 10:57:35
0
3
935

必要なデータ形式は次のとおりです:
1
10
100
1-5
10-50
100-500
0.5
10.5
10.5-20
10.5-20.5
10-20.5

つまり、検証に必要な数値のサイズに制限はありません。浮動小数点数を含むかどうか、「-」を含むかどうか、および小数点以下 1 桁が保持されます。

これは私が書いた正規表現です:

次のコピーは間違っています:

リーリー

次のように修正されました:

リーリー

しかし、なぜ 20.5555 は常に true なのでしょうか?

typecho
typecho

Following the voice in heart.

全員に返信(3)
洪涛

/^d{1,}.?d?-?(d{1,})?.?d?$/匹配过程如下:
首先d{1,}匹配的是"20";
.?匹配".";
d?匹配"5",?匹配了1次;
-?匹配"",因为?匹配0或者1次,在这里匹配0次;
(d{1,})?匹配"555",此时?匹配1次;
.?d?匹配"",此时两个?都匹配0次;
$ 文字列の末尾と一致するため、「20.5555」が一致します。

Update1:
/^d{1,}.?d{1}?-?(d{1,})?.?d{1}?$/のマッチングプロセスは次のとおりです:

  1. d{1,}「20」と一致します;

  2. .?「.」と一致します;

  3. d{1}?会首先尝试匹配一个数字,此时匹配"5",? 1 回一致しました;

  4. -?会匹配"",此时? 0 回一致しました。

  5. 「555」と一致します;

    (d{1,})?

  6. は "" に一致しますが、この時点では ? は 0 回一致します。

    .?匹配"",此时?d{1}? は「」に一致し、? は 0 回一致します。

    d{1} は数値が 1 回繰り返されることを意味します。したがって、この正規表現は実際には d と同じであるため、更新された正規表現と元の正規表現の間に違いはありません。
  7. d{1}?匹配"",?匹配0次;
    d{1}表示数字重复一次,所以该正则和d注:最初に書いたマッチング処理に問題がありましたが、現在は更新されています。

いいねを押す +0
曾经蜡笔没有小新

リーリー

いいねを押す +0
小葫芦

???正規表現を使用する理由

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート