首页 > 解决方案 > Javascript正则表达式:仅替换字符之间的连字符(不是空格)

问题描述

我想替换字符串中 2 个字符之间的连字符。2 个字符可以是空格以外的任何字符。

string.replace(/regex/g, '');

所以

标签: javascriptregex

解决方案


您可以使用此正则表达式替换:

str = str.replace(/(\S)-(\S)/g, '$1$2'); 

正则表达式演示

这里(\S)-(\S)匹配一个非空格字符,后跟连字符,然后是另一个非空格字符。我们还捕获了 group 中的两个相邻字符,然后我们放回了替换$1$2

const regex = /(\S)-(\S)/g;
const str = `dog-cat
dog - cat
1-1
1 - 1
$-$
$ - $
^-^
^ - ^`;

// The substituted value will be contained in the result variable
const result = str.replace(regex, '$1$2');

console.log(result);


推荐阅读