我在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)/, ' ');