如何将 Php 正则表达式转换为 js


How to convert Php regular expression into 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 中以任何其他方式执行此操作。

您可以使用

此模式来捕获要避免的内容。由于 javascript 中不存在'h,因此您可以使用 [^'S'r'n] 来模拟它。替换函数在组存在或空格时返回组:

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