我想替换字符串中两个字符之间的连字符。这两个字符可以是一个空格以外的任何东西。
string.replace(/regex/g, '');所以
发布于 2018-05-28 10:03:36
您可以使用这个regex替换:
str = str.replace(/(\S)-(\S)/g, '$1$2'); 在这里,(\S)-(\S)匹配一个非空格字符,后面是连字符,然后是另一个非空格字符。我们还在组中捕获两个相邻字符,然后在替换时将$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);
发布于 2018-05-28 10:07:21
试试这个regex:"dog-cat".replace(/(?=\S)(-)(?=\S)/g, '')
发布于 2018-05-28 11:08:19
若要删除非空白字符之间的所有-字符,应使用
.replace(/(\S)-(?=\S)/g, '$1')见regex演示。
这里,
(\S) -机器并将任何非空白字符捕获到第1组中。- -a连字符(?=\S) -(一个积极的展望,确保)在连字符之后,必须有一个字符,而不是一个空格。没有使用这个字符,即regex索引就在它的前面,允许将该字符与下一个迭代匹配(因为g全局修饰符将允许匹配字符串中所有正则表达式的出现)。JS演示:
var rx = /(\S)-(?=\S)/g;
var s = "dog-cat\ndog - cat\n1-1\n1 - 1\n$-$\n$ - $\n^-^\n^ - ^\n1-1-1-1";
console.log(s.replace(rx, '$1'));
https://stackoverflow.com/questions/50563769
复制相似问题