2016-01-03 85 views
0

我是一個小白與JS和在想,如果我可以搜索和替換使用正則表達式字符串中的字符但像前的一些規則:關於在JS正則表達式

比方說,我想搜索和代替分號前的每個空格,代碼將如下所示:

someString.replace(/\s*;/, ""); 

但是當我這樣做的時候,當然是';'它會被「」取代。我的問題是:是否有一種方法可以在分號前刪除所有空格,但不刪除分號?

感謝您的回答!

+0

您可以取代'\ S *;'用分號...或者你可以只使用一個積極的前瞻使得分號不會被替換 - '\ S *( ?=;)'。 –

+0

「分號後面的每個空格」==='/; \ s +/g'「。後面,不是」前面的「,每一個都等於修飾符'g' – kay

+0

@Kay你是對的,但也許他意思是'「之前」 – axelduch

回答

2

您正在用空字符串""替換\s*;。您需要將其替換爲;

替換:

someString.replace(/\s*;/, ""); 

有:

someString.replace(/\s*;/, ";"); 

編輯:
如果你想多次做字符串中,然後使用全局修改:someString.replace(/\s*;/g, ";");

檢查這demo

1

您的後綴是分號,您可以簡單地用分號替換整個匹配,它將保留它。既然你可能希望你的程序在同一個字符串上多次執行,我建議使用全局標誌。你也想至少替換一個空格字符。

這讓我們

someString.replace(/\s+;/g, ';');