2011-04-28 26 views
1

遵循IE的正則表達式,但它不起作用Firefox或Chrome。firefox和chrome的正則表達式

function CheckValidText(comment) { 
    var regex = new RegExp("^[A-Za-z0-9\*]{1}+[A-Za-z0-9[:blank:]]*"); 
    var regExpr = new RegExp(regex); 

    var result = comment.search(regExpr); 
    if(comment.search(regExpr) != -1){ 
     return true; 
    }else { 
     return false; 
    }  
} 

在此先感謝。

回答

0

你的問題是這樣的位:前一項的{1}+

隨着{1},你specifiying只有一個....但後來隨着+,你指定其中一個或多個。他們互相沖突。

根據您的要求,您需要刪除{1}+

如果去掉其中的一個或其他,則代碼不會在Firefox的工作。 (使用Firebug進行測試)

但是,正如@Guffa所說,你似乎有一些奇怪的邏輯,你從另一個創建一個正則表達式對象 - 它似乎工作,但它確實不是一件好事,並可能會導致其他問題(我還沒有在Chrome中嘗試過)。

+0

thnx..you傢伙是驚人的.. – anonymous 2011-04-29 04:00:50

1

您使用的是RegExp對象創建另一個RegExp對象,它不應該在任何瀏覽器中運行。只需使用一個字符串:

var regex = "^[A-Za-z0-9\*]{1}+[A-Za-z0-9[:blank:]]*"; 
var regExpr = new RegExp(regex); 
相關問題