簡體   English   中英

正則表達式的反函數(JavaScript / Titanium)

[英]Inverse of a regular expression (JavaScript/Titanium)

我在Titanium中有以下代碼來檢查用戶輸入是否為非數字:

textBox.addEventListener('change', function (e) {
    var patt = new RegExp('^\d+(\.\d{1,2})?$','gi');
    if (e.value.match(patt) != null) {
        //insert action here
    }
});

我個人想在用戶嘗試輸入非十進制字符時刪除非十進制字符。 但是,為了這樣做,我需要使用replace(inversePatt, "") 我想知道,如何獲得正則表達式的逆函數?

要刪除非十進制字符,您應該能夠匹配每個:

[^\.\d]

組返回。

([^。\\ d]應該可以工作,這里的點不需要轉義)

克拉在方括號內倒置。 它的基本意思是“不是點或數字”。

查看:

http://www.scriptular.com

編輯:我認為這有你的答案:

限制輸入文本框:僅允許數字和小數點

編輯2 :您也可以使用此:

var success = /^\d*\.?\d{0,2}$/.test(input);

按照:

將輸入字段限制為小數點后兩位

您還可以要求小數點前的數字,如下所示:

var success = /^\d+\.?\d{0,2}$/.test(input); // uses + instead of *

如果要在關鍵事件中處理字符,則應執行以下操作。
作為接受確認,請使用\\d以確保存在數字。

 # ^(?:\.|\d*|\d+\.|\d*\.\d+)$
 # "^(?:\\.|\\d*|\\d+\\.|\\d*\\.\\d+)$"


 ^                       # BOL 
 (?:
      \.                 # dot, or 
   |  
      \d*                # optional digits (if no digits, matches ^$) 
   |  
      \d+ \.             # digits and dot
   |  
      \d* \. \d+         # optional digits and dot and digits
 )
 $                       # EOL 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM