繁体   English   中英

正则表达式删除多个连续的“-”

[英]Regular expression to remove more than one continuous “--”

我有两个要求,首先,我想用一个空值替换文本开头和结尾的“-”符号。 其次,如果有任何连续的“-”符号,则应将其替换为单个“-”符号。

如果可能,请在一个模式中提供这两个需求的代码。

码:

//1.)
// replace more than 1 "-" in b
// Expected Output : -asdas-sadf-asdasd-ju

var a = "--asdas-sadf----asdasd---ju";
a = a.replace(/-{2,}/,"");
//alert(a);

//2.)
// remove last "-" and starting "-" from b that is "das-" - after das needs to be removed
// Expected output : welcome/asasdgrd/asd-ast-yret-das/456

var b = "-welcome/asasdgrd/asd-ast-yret-das-/456"
b = b.replace(/[-$]/,"");
//alert(b);

提琴手链接:

http://jsfiddle.net/nj5j0yeq/1/

您需要使用捕获组。

 var s = "--asdas-sadf----asdasd---ju"; alert(s.replace(/^-+|-+$|(-)+/gm, "$1")); 

^-+|-(?!.*?-)|(-){2,}

你可以试试看,用$1代替。

https://regex101.com/r/jV9oV2/8

您可以检查的时间,甚至--并能与奇取代-

var a = "--asdas-sadf----asdasd---ju";
var b= a.split("--").join("-");
var c = b;
var d = c.split("--").join("-");
console.log(d);

或`var res = str.split(/ ^-+ $ |(-)+ /)。join(“”); 的console.log(RES);

`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM