2014-02-20 33 views
0

我有一個字符串像這樣如下:的JavaScript字符串操作

var stOrig= "ROAM-Synergy-111-222-LLX" ; 

可以有任何否定的。數字值前的「字母」術語111-222 .. 可能有也可能沒有任何數字值,即字符串也可以簡單地如下所示: "ROAM-Synergy-LCD-ROAM"

如果有數值,然後我用這

var myval = st.match(/^\D+(?=-)/)[0]; 

只得到的數值前的字母條款。它的工作很好,直到這裏。

但如果假設字符串不包含任何數值,那麼我的正則表達式返回一個學期少即 說原來的字符串是:(沒有任何數字)"ROAM-Synergy-LCD-ROAM" 現在,如果是上述reg表達式使用...那麼它將只返回"ROAM-Synergy-LCD" .. 所以首先我需要檢查原始字符串中的任何數值......如果字符串包含數值,那麼我使用上面的reg exp ...但請建議如果字符串不包含數值那麼什麼reg表達式使用..

+1

...這正是我寫我的評論的原因[到你以前的問題](http://stackoverflow.com/q/21822958/20670)... :) –

+0

是的,我同意:) ..實際上有一些代碼更改可能導致這種情況......謝謝 – vicky

回答

1

使用

var myval = st.match(/^\D+(?=-|$)/)[0]; 

$匹配字符串的末尾。

查看live on regex101.com