You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript正则表达式仅替换非空格字符间的连字符

移除两个非空格字符之间的连字符解决方案

嘿,这需求我熟!要精准移除两个非空格字符中间的连字符,同时保留两侧带空格的连字符,直接用带环视断言的正则表达式配合JavaScript的replace方法就能搞定:

string.replace(/(?<=\S)-(?=\S)/g, '');

正则逻辑拆解:

  • (?<=\S):反向肯定断言——确保连字符左边是非空白字符(\S能匹配字母、数字、符号等所有非空格内容)
  • -:就是我们要移除的目标连字符
  • (?=\S):正向肯定断言——确保连字符右边也是非空白字符
  • /g:全局匹配标记,会替换字符串里所有符合条件的连字符,不是只换第一个

实际效果示例:

  • dog-cat → dogcat
  • dog - cat → 保持不变
  • 1-1 → 11
  • 1 - 1 → 保持不变
  • $-$ → $$
  • $ - $ → 保持不变
  • ^-^ → ^^
  • ^ - ^ → 保持不变

完美区分需要移除的连字符和要保留的带空格连字符,直接用就行~

内容的提问来源于stack exchange,提问作者user2272048

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:17:42