tft每日頭條

 > 生活

 > 隻截取數字和小數點的正則表達式

隻截取數字和小數點的正則表達式

生活 更新时间:2024-09-01 17:38:30

隻截取數字和小數點的正則表達式?  整數和小數,保留兩位小數的正則表達式:,下面我們就來說一說關于隻截取數字和小數點的正則表達式?我們一起去了解并探讨一下這個問題吧!

隻截取數字和小數點的正則表達式(小數點後保留2位小數的正則表達式)1

隻截取數字和小數點的正則表達式

一、前提

  整數和小數,保留兩位小數的正則表達式:

  具體什麼意思呢 

^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,2})?$

二、知識點

  1、首先從寫法上可以看出,使用了顯式定義正則表達式的語法,因為其中存在對字符串"\"(反斜杠)的轉義

  2、正則表達式的定義共有2種方式:顯示定義和隐式定義

1 /*\d是正則表達式中的元字符,用于匹配數字,相當于[0-9],所以[0-9]也可以寫成\d*/ 2 var myregex = new RegExp("[0-9]"); //顯式定義 3 var myregex = /[0-9]/; //隐式定義

  3、何謂定位符?即限定某些字符出現的位置。 說明:^表示必須以什麼字符開頭;$表示必須以什麼字符結尾。  4、何謂限定符?即限定某個字符或某類字符出現的次數。說明:* 表示重複0次或更多次(任意次數);?表示重複0次或1次(最多1次);{n}表示重複n次;{n,m}表示重複n-m次;  5、何謂分組?分組又稱為子表達式,即把一個正則表達式的全部或部分分成一個或多個組。 語法:分組使用的字符為“(”和“)”,即左括号和右括号。每一個子表達式都可以當做一個整體來處理。

三、拆分

1 //第一步:先分組,不管定位符和限定符。總共可分為兩大組。 2 (([1-9]{1}\d*)|([0]{1}))//第一大組:整數部分 3 (\.(\d){0,2})//第二大組:小數部分

四、分析第一大組

1 //第二步:繼續分組,将第一大組(整數部分)繼續拆分,可分為3部分。 2 ([1-9]{1}\d*)//第一部分 3 | //第二部分 4 ([0]{1})//第三部分

  1、[...]是正則表達式中的元字符。它會匹配方括号中的所有字符。 2、|是正則表達式中的選擇符。簡單來說就是:用于二選一。即選擇2個選項之中的任意一個,選他或選她。

  3、整數部分的兩種情況:首位是0和首位不是0。即0.12、13.14、5.21

  4、第一部分中的内容,即第一種情況,首位不為0:([1-9]{1}\d*)   可以看出,第一部分由兩個模塊組成,即[1-9]{1}和\d*。     (1)[1-9]{1}表示1-9之間的數字隻出現一次,即保證了該數的首位不是0,總之是大于0的數。     (2)\d*表示0-9之間的數字可以出現任意次,即0次或更多次。出現0次說明是一位整數。出現更多次就是多位整數。

  5、第三部分中的内容,即第二種情況,首位為0:([0]{1})【一個字符沒必要使用[元字符,直接寫0就行,即(0{1})】

    表示數字0隻能出現一次,即首位隻能是0,而且隻能有一個0。

  第一大組匹配了整數部分的情況,大于0的數還是小于1的數

五、分析第二大組

1 (\.(\d){0,2})//第二大組:小數部分 2 //第三步:繼續分組,将第二大組(小數部分)繼續拆分,可分為3部分。 3 \. //第一部分 4 (\d) //第二部分 5 {0,2} //第三部分

  1、.(點)是正則表達式中的元字符。它會匹配除了換行符以外的任意字符。

  2、由于.(點)是元字符,所以,如果想要匹配字面意義上的點時(此處需要匹配小數點),需要使用轉義字符\(反斜杠)将它進行轉義,即\.。

  3、如果要匹配小數點後保留2位小數,則隻需要改一下限定符即可。\.\d{2}

六、總結

  ^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$就表示了小數點後可以保留0位、1位、或2位小數。  要求小數點後隻能保留2位小數,則修改表示小數點後面數字的重複次數(即位數)的限定符{},直接将{0,2}改為{2},

    然後去掉限定符?即可。去掉了 ? 就代表該數不可能是整數,一定是小數。  最終的正則表達式:^(([1-9]{1}\d*)|(0{1}))(\.\d{2})$

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved