如何用JavaScript正则仅删除双引号内换行符且不影响其他换行
解决方案:JavaScript删除双引号内部换行符
直接使用以下代码即可实现仅移除双引号内的换行,其余位置换行完全保留:
// rawStr 为待处理的原始字符串 const processedStr = rawStr.replace(/"([^"]*)"/g, (match, innerContent) => { // 仅处理双引号内部的内容,删除换行及换行后跟随的缩进空白 return `"${innerContent.replace(/\n\s*/g, '')}"` })
上述代码处理你给出的输入示例后,可直接得到预期输出,不会误删双引号外的换行。
实现逻辑
- 外层正则
/"([^"]*)"/g全局匹配所有成对的普通双引号包裹的内容,范围精准,不会触碰双引号外的任何字符 - 内层仅针对匹配到的双引号内部内容做替换,删除所有换行符、以及换行后紧跟的空白字符,完全符合转换要求
转义引号适配
如果你的内容中存在转义双引号\",将外层正则替换为/"(\\.|[^"])*"/g即可避免匹配截断问题:
const processedStr = rawStr.replace(/"(\\.|[^"])*"/g, (match) => { return match.replace(/\n\s*/g, '') })
内容的提问来源于stack exchange,提问作者Jagan Pandurangan
相关产品推荐
相关产品推荐

