node.js - Nodejs在字符串中添加额外的反斜杠(\)
问题描述
我正在尝试这个示例代码
let route = {
paths: []
}
let convertedStr0 = "/{test}/search/v1/{userId}"
let convertedStr1 = convertedStr0.replace(new RegExp("{", 'g'), "(?<").replace(new RegExp("}", 'g'), ">\\S+)$");
console.log(convertedStr1); //Output: /(?<test>\S+)$/search/v1/(?<userId>\S+)$
route.paths[0] = convertedStr1;
console.log(route); //Output: { paths: [ '/(?<test>\\S+)$/search/v1/(?<userId>\\S+)$' ] }
我需要将路由结果写入带有单个反斜杠 ( \
) 的文件中。但是附加了一个额外的反斜杠。有人对我如何解决此问题有任何建议吗?
解决方案
反斜杠也是一个转义字符。在您的字面上的字符串中">\\S+)$"
,第一个转义第二个。这意味着"\\"
定义单个字面字符\
.
在第一个 console.log 中,您的输出是一个字符序列。在字符方面,您的字符串中只定义了一个反斜杠。
在第二个 console.log 中,您的输出是您的序列的字符串表示形式。所以有双反斜杠,代表一个转义另一个。
另请注意,第一个输出没有像第二种情况那样用单引号括起来。
推荐阅读
- javascript - 如何根据索引从数组中删除项目
- c# - 为什么我的 TSQL SELECT 命令会吐出随机数据?
- java - 策略设计模式示例?
- reactjs - React Firebase:创建图表的问题
- python - 我无法让我的 QSQLTableModel 连接到我的数据库,因此当我在模型上调用 select() 方法时它不会填充模型,
- sql - 如何找到具有最大值的组
- oracle - Oracle 数据库:想检查我给用户的权限
- java - 当我使用时间限制器(断路器 + 线程池隔板 + 时间限制器)时,JVM 用完了线程
- javascript - how to optimize this traditional "for" loop for this case?
- python - 如何生成值均匀分布在一定范围内的 np.array