含\d的字符串正则替换失效,请求解决替换异常问题
问题解决:正则替换
\d失效及误替换字母d的问题 问题根源
你遇到的问题核心是**replaceAll('\d', '[N]')的错误使用**:在JavaScript中,字符串里的'\d'是无效转义,会被直接解析为普通字符'd'。这就导致你原本只想替换\d(单个反斜杠+字母d),结果把字符串中所有的字母d都换成了[N]——这就是sdsds变成s[N]s[N]s[N]的原因。
而你之前的/\\d/g正则其实是正确的,它能匹配API返回的单个反斜杠加d的\d组合,只是后面错误的replaceAll干扰了结果。
修正后的代码
去掉最后那个错误的replaceAll调用,只保留前两个replace即可:
value.replace(/\[a-zA-Z\]/g, '[C]').replace(/\\d/g, '[N]')
验证结果
假设API返回的原始字符串是[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]sdsds\d\d,运行修正后的代码会得到:
[C][C][C][C]sdsds[N][N]
(注:你给出的期望结果里sdsds写成了asass,应该是笔误,按原始输入修正后结果如上)
内容的提问来源于stack exchange,提问作者osman Rahimi
相关产品推荐
相关产品推荐

