如何将带有lookbehind的PHP正则表达式转换为Javascript?

如何将带有lookbehind的PHP正则表达式转换为Javascript?,javascript,regex,lookbehind,Javascript,Regex,Lookbehind,Javascript不支持正则表达式中的lookbehinds。如何将以下PHP正则表达式转换为Javascript regPattern="(?<!\\)\\x" \\x123不匹配,因为它包含\\x,但\x匹配。尝试以下操作: var newStr = str.replace(/([^\\]|^)\\x/g, '$1\\u'); 换句话说,匹配^(字符串开头)或任何非\字符,后跟\x,捕获捕获组1中的第一个字符 然后用捕获组1替换整个3字符匹配组,然后是\u 例如,在abc?\x中

Javascript不支持正则表达式中的lookbehinds。如何将以下PHP正则表达式转换为Javascript

regPattern="(?<!\\)\\x"
\\x123
不匹配,因为它包含
\\x
,但
\x
匹配。

尝试以下操作:

var newStr = str.replace(/([^\\]|^)\\x/g, '$1\\u');
换句话说,匹配
^
(字符串开头)或任何非
\
字符,后跟
\x
,捕获捕获组1中的第一个字符

然后用捕获组1替换整个3字符匹配组,然后是
\u


例如,在
abc?\x
中,将匹配字符串
?\x
,捕获组1将为
。因此,我们将匹配项(
?\x
)替换为
$1\u
,其计算结果为
?\u
。所以
abc?\x
->
abc?\u

您的
str
不是
字符串
。现在,您的字符串是
{“key”:“abc\x123–xyz”}
,因此,
替换(/\\x/g,///u')
将生成
{key:“abc//u123–xyz。您确定发布了正确的字符串文字吗?是的,我已将str更正为“{”key:“abc\\x123\xe2\x80\x93 xyz”}”,它现在是一个字符串/\\x/g具有以下输出“{”key:“abc\\u123\ue2\u80\u93 xyz”}注意,\\x123不匹配
var newStr = str.replace(/([^\\]|^)\\x/g, '$1\\u');