2010-08-06 16 views
0

我有以下可能的字符串: '',或'4。'或'* .4'或'4.35' 以上所有格式均有效,其他均無效。 基本上,如果我不關心數字或字符,而這是我在PHP中使用的確認:如何在javascript中爲這個字符串做正則表達式?

 else if (!ereg('^\*|.*\..*$',$bl_objver)) 

現在,我想補充一些客戶端驗證,所以我只是把它翻譯成JavaScript的:

var ver_reg = new RegExp("^\*|.*\..*$"); 
    if (ver_reg.test(obj_ver) == false) 

但螢火蟲總是顯示一些錯誤,比如: 「無效的量詞| .. * $」 等。

有什麼建議?

回答

0

(我不相信你的表情是正確的,但目前與你有什麼正要)

使用RegExp對象,你需要逃避斜線

var ver_reg = new RegExp("^\\*|.*\\..*$"); 

或者您可以使用正則表達式的文字符號:

var ver_reg = /^\*|.*\..*$/; 


這回答您的直接問題,但...

至於表達,那麼,你一定要糾正一下是開始/結束錨每個申請交替的一側。

即你說<this>|<that>其中<this>^\*<that>.*\..*$

你想要的是^(?:<this>|<that>)$確保開始/結束標記並不是替代的部分(但使用?:因爲我們沒有捕捉羣組)。

所以/^(?:\*|.*\..*)$/使用上面的第二示例 - 此修復還需要適用於PHP版本(可以使用相同的語法)。

我還質疑你的.,而不是\w[^.]或類似用途的,但不知道你實際上在做什麼,我不能肯定地說什麼最有意義。

希望這會有所幫助! :)

+0

謝謝,剛剛發現了一些關於此的解釋: http://www.regular-expressions.info/javascript.html – WilliamLou 2010-08-06 01:31:00

+0

是的,這是一個很好的網站 - 非常值得您閱讀和學習從中。 :) – 2010-08-06 01:33:46

相關問題