簡體   English   中英

獲取除JavaScript正則表達式中的match之外的所有內容

[英]Get everything except match in javascript regular expression

我有以下正則表達式來獲取網址后的第一部分:

^http[s]?:\/\/.*?\/([a-zA-Z-_.%]+).*$

它與以下網址中的test匹配:

foo.com
http://foo.com
http://foo.com/ 測試
http://foo.com/ 測試 /
http://foo.com/ 測試 ?bar

我現在想做的是重新創建相同的URL,但是用不同的值替換test 通過在比賽之前或之后取出零件或反轉結果。

我敢肯定有一種正規的方法可以做到這一點,但是我不知道該怎么做。

您可以在/test之前將捕獲組用於零件,並將其用作替換中的后向參考:

var re = /^(https?:\/\/[^\/]+\/)[^?\/]+/gmi; 
var subst = '$1foobar'; 

var result = str.replace(re, subst);

[^?\\/]+將匹配下一個/?之前的文本? 網址中的域名之后。 作為原始正則表達式,它還假定URL以http://https://開頭。

正則演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM