2012-07-06 20 views
0

我需要根據javascript中的正則表達式驗證文本。我的正則表達式工作正常,但不能找出它爲什麼不工作在Java腳本。使用javascript進行正則表達式驗證

正則表達式是這樣的,^([-+/*]\d+(\.\d+)?)*

有效表達式是+7+9.36*8+4-9.3/5.0

無效匹配是test8.36

下面是代碼,

var ck_diffrentialformula = /^([-+/*]\d+(\.\d+)?)*/; 

      function radtxtbxLinkedDifferentialFormulaOnBlur(sender, eventArgs) { 
       if (sender.get_value().length > 0) { 

        var entered_value = sender.get_value(); 

        if (ck_diffrentialformula.test(entered_value)) { 
        alert('Text Matches'); 
        } 
        else { 
        alert('Text does not match'); 
        } 
       } 
      } 

sender.get_value() - gives the text box value over here. 

請告訴我我在哪裏做錯了。

+0

是你得到任何警報? – 1Mayur 2012-07-06 06:39:11

+0

請提供一個需要驗證的實際數據的例子(有效和無效的例子都是最好的)。 – lanzz 2012-07-06 06:39:41

+1

這將幫助我們非常瞭解'sender.get_value()'的價值(以及您希望的警報是什麼)。 – 2012-07-06 06:39:49

回答

1

也許你想試試這個表達式:/^([\-+\/*]\d+(\.\d+)?)*$/
它會把「 - 」和「/」(jsbin表明它)正則表達式中,並認爲(在最後$)整個字符串。

+0

謝謝,它的作品只是我不得不添加一個額外的轉義字符。正確的正則表達式是'/ ^([\ - + \/\ *] \ d +(\。\ d +)?)* $ /' – Bibhu 2012-07-06 07:17:38

2

我假設你使用它是這樣的:

<input type="text" onchange="radtxtbxLinkedDifferentialFormulaOnBlur(this,null)" /> 

sender有沒有方法.get_value()這樣就不會甚至工作。代替它,它似乎工作。

function radtxtbxLinkedDifferentialFormulaOnBlur(sender, eventArgs) { 
    console.log(sender) 
    if (sender.value.length > 0) { 
     console.log(sender.value); 
     if (ck_diffrentialformula.test(sender.value)) { 
     console.log('Text Matches'); 
     } 
     else { 
     console.log('Text does not match'); 
     } 
    } 
} 
+0

更新我的問題,我使用'sender.get_value()'獲取文本框的值,並且該值也到了 – Bibhu 2012-07-06 06:45:08

+0

因此'sender.getValue()'返回正確的值......您剩下的只是一條if語句。語法是有效的。還有其他的錯誤。向我們顯示getvalue代碼 – sachleen 2012-07-06 06:47:22

+0

'sender.getValue()'返回正確的值,我已使用提醒框檢查它 – Bibhu 2012-07-06 06:48:54