2013-10-25 143 views
1

我已經寫在JavaScript(網頁),但由於我嘗試使用RegExpression它應該幾乎相同。正則表達式(字符串比較)

我有一個字符串,其中有一些座標,由空間charakter分隔。

var coords = "0:0 0:0:0 1:0:1 0:0:0:1"; 
var part = "0:0"; 

我想要所有以part(「0:0」)的值開頭的座標;

我tryed什麼是一樣的東西:

var reg = new RegExp(part+"*"); 
alert(coords .match(reg)); 

但它似乎沒有propperly工作。

它應與 「0:0」, 「0:0:0」, 「0:0:0:1」,而不是 「1:0:1」(編輯)

任何人有一個想法?!

親切的問候!

+0

試試這個var reg = new RegExp(part,「*」); – N20084753

+1

你不清楚。它是否匹配「0:0:0」和/或「0:0:0:1」? – epascarello

+0

它應該匹配「0:0」和「0:0:0」和「0:0:0:1」但不是「1:0:1」 – marius

回答

1

你應該使用這個表達式:

var reg = new RegExp("(^|\\s)(" + part + "\\S*)", "g"); 

0:0後,所有非空格字符匹配,當它擊中空格或行結束停止。

+0

仍然不能正常工作:/只打印一次「0:0」,我已經閱讀過它,但並不知道它包含行結束,我是否可能必須設置修飾符? – marius

+0

@marius:您需要使用全局開關來捕獲所有字符串,請參閱現在編輯的答案。 – anubhava

+0

啊好吧似乎合法,但我回來的不是它的三次座標「0:0」 – marius