簡體   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