JavaScript使用反斜杠分割字符串失效,如何提取反斜杠与连字符间的数值?
问题解决方法
核心问题原因
- 字符串字面量定义错误:JavaScript 普通字符串中单个反斜杠是转义前缀,你写的
'uploads\20211116011817-natural'里的\202会被识别为八进制转义字符,不会作为普通反斜杠处理,你看到的问号就是不可打印的转义字符的渲染结果,这是问题的核心根源。 - 分割参数写法错误:你代码中
split("'\"")的参数是单引号+双引号的组合,完全无法匹配到反斜杠,自然得不到预期结果。
修正方案
- 手写字符串字面量时,必须用双反斜杠转义才能保留反斜杠内容;如果字符串是从接口、文件等外部路径读取的,不需要手动转义,JS 会自动处理转义逻辑保留反斜杠。
- 调整分割逻辑:先按反斜杠分割取最后一段,再按连字符分割取首段即可提取目标数字。
正确可运行代码如下:
// 手写字符串字面量需要双反斜杠转义 const x = 'uploads\\20211116011817-natural' // 先按反斜杠分割,再按连字符分割 const targetNum = x.split('\\').pop().split('-')[0] console.log(targetNum) // 输出 20211116011817
内容的提问来源于stack exchange,提问作者seriously
相关产品推荐
相关产品推荐

