2016-02-28 44 views
1

我在PHP中有一個正則表達式,它的工作正常,但我想在js中使用它可以任何請告訴我如何做,我不太熟悉它如何將Php正則表達式轉換爲js

在PHP這個表達式是工作這樣它允許連字符符號( - )號和字符之間但除去字符之間連字符符號和與白色空間更換一樣,如果我在此之後使用任何此字符串

$string ="Al-Abbas - Manama - 100" or 
$string ="100 - Al-Abbas - Manama" 

$repl = preg_replace('/\d\h*-\h*(*SKIP)(*F)|-(?!\h*\d)/', ' ', $string); 

的我得到這個輸出

Al Abbas Manama - 100 
100 - Al Abbas Manama 

我想在JavaScript中做到這一點,我怎麼能轉換這個表達式在JavaScript或任何其他方式做這樣的JavaScript。

+0

您不能,您需要爲javascript設計您的模式(或您的代碼)。使用捕獲組和一個函數作爲替換。 –

+0

你能指導我如何我可以讓JavaScript的我沒有做過,所以我不知道這個 – OBAID

回答

2

您可以使用此模式捕捉您想要避免的內容。由於\h在JavaScript中不存在,因此您可以使用[^\S\r\n]來模擬它。替換函數返回該組存在或空間時:

mystr = mystr.replace(/(\d[^\S\r\n]*-)|-(?![^\S\r\n]*\d)/g, function (_, g) { 
    return g ? g : ' '; }); 
-1
var str="100 - Al-Abbas - Manama"; 
var newstr = str.replace(/\d\h*-\h*(*SKIP)(*F)|-(?!\h*\d)/, ' '); 
+1

不工作顯示錯誤,我想你錯過了引號..? – OBAID

+1

字符類'\ h'不存在於javascript中,也不存在回溯控制動詞'(* SKIP)'和'(* F)' –

相關問題