繁体   English   中英

为什么Javascript string.replace(“\\ n \\ t”,“xxx”)用“\\ nxxx”替换“\\ n \\ t”?

[英]Why Javascript string.replace(“\n\t”,“xxx”) replaces “\n\t” with “\nxxx”?

我希望在txt文件中用"xxx"替换"\\n\\t"

"数字多功能光盘    DVD shùzì"

我这样做: str.replace("\\n\\t","xxx")方法匹配所需的部分,但离开\\n部分,只替换\\t'xxx' xxx'.WHY?

为什么在VSCOde使用crtl+F并且它像魅力一样工作但在代码中却没有。

首先, str.replace("a","b")仅替换JavaScript中的第一个匹配项。 要替换所有这些,您需要使用带有g修饰符的正则表达式。 所以,你可以先尝试str.replace(/\\n\\t/g,"xxx")

接下来,为什么它在VSCode中有效? 在VSCode正则表达式中, \\n匹配在VSCode应用程序右下角选择的任何换行符序列。 在这种情况下,它在PCRE,Java,Onigmo等中用作\\R

由于可以有许多行结束序列,您可以考虑将VSCode \\n “转换”为(?:\\r\\n|[\\r\\n\\x0B\\x0C\\x85\
\
]) ,以匹配任何单个Unicode换行符顺序和使用

s = s.replace(/(?:\r\n|[\r\n\x0B\x0C\x85\u2028\u2029])\t/g, '')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM