piker
piker

Reputation: 23

JS - how to replace   in regex for links

I have a regex that replaces the link from the moment http to the occurrence of certain characters in [], I would like to add   to these characters - that is to replace the string with the occurrence of certain characters or a hard space:

"https://test.pl'".replace(/https?:\/\/[^ "'><]+/g," ")

Works fine for the characters mentioned in [], I don't know how to add here &nbsp;

Upvotes: 2

Views: 1032

Answers (1)

Wiktor Stribiżew
Wiktor Stribiżew

Reputation: 627468

You can use

.replace(/https?:\/\/.*?(?:&nbsp;|[ '"><]|$)/g," ")

See the regex demo.

Details:

  • https?:\/\/ - http:// or https://
  • .*? - any zero or more chars other than line break chars as few as possible
  • (?:&nbsp;|[ '"><]|$) - one of the following:
    • &nbsp; - &nbsp; char sequence
    • | - or
    • [ "'><] - a space, ", ', > or < char
    • | - or
    • $ - end of string.

JavaScript demo:

const texts = ["https://test.pl&nbsp;test","https://test.pl'test"];
const re = /https?:\/\/.*?(?:&nbsp;|[ '"><]|$)/g;
for (const s of texts) {
  console.log(s, '=>', s.replace(re, " "));
}

Upvotes: 1

Related Questions