正則表達式:網店中折扣價格-要求大於0小於10,且允許保留一位小數點


  • 需求:網店中折扣價格-要求大於0小於10,且允許保留一位小數點

  • 需求分析:

1,)取值范圍為(0,10),兩端都是開區間;

2,)“可保留一位小數”,可以不包含小數,但如果包含小樹就一定要僅包含一位小數。

  • 開發(javascript下):
  1. 第一步:0-10包含一位小數:/^\d(\.\d)?$/
  2. 第二步:排除特殊的0和0.0和10,這樣的寫法為:

/^[^0][^0.0][^10]\d(\.\d)?$/

測試下:是否是我們想要的結果呢?

  • 答案:no

具體原因,我也解釋不清。

  • 換種思路:

既然0、0.0及10不是我們想要的,我們是否應該可以拆分為兩種:

1,)[0.1,0.9]拆分為一組可取值的配置集合;

2,)[1.0,9.9]拆分為第二組可取值的配置集合;

3,)兩個集合拼接在一起不就是我們想要結果。

  • 開發:
  1. [0.1,0.9]拆分為一組可取值的配置集合-javascript正則為:/^(0\.[1-9]{1})$/
  2. [1.0,9.9]拆分為第二組可取值的配置集合-javascript正則為:/^([1-9]{1})(\.\d{1})?$/
  3. [0.1,9.9]正則為:/^((0\.[1-9]{1})|(([1-9]{1})(\.\d{1})?))$/
  • 經過測試:/^((0\.[1-9]{1})|(([1-9]{1})(\.\d{1})?))$/ 測試通過。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM