隻截取數字和小數點的正則表達式? 整數和小數,保留兩位小數的正則表達式:,下面我們就來說一說關于隻截取數字和小數點的正則表達式?我們一起去了解并探讨一下這個問題吧!
整數和小數,保留兩位小數的正則表達式:
具體什麼意思呢
^(([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每日頭條,我们将持续为您更新最新资讯!