如何将带有lookbehind的PHP正则表达式转换为Javascript?
Javascript不支持正则表达式中的lookbehinds。如何将以下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中
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');