Как заменить весь экземпляр строки '& user_story = x' с использованием регулярного выражения в javascript? - PullRequest
1 голос
/ 28 мая 2020

У меня есть такая строка -

var string = 'callback&user_story=1&user_story=2&user_story=100&user_story=a&user_story=john';

&user_story=x (здесь x может быть любым) может повторяться n раз.

Как заменить это '&user_story=x' на пустое значение.

Что будет для него регулярным выражением в JS?

1 Ответ

0 голосов
/ 28 мая 2020

Регулярное выражение выглядит так:

var string = 'callback&user_story=1&user_story=2&user_story=100&user_story=a&user_story=john';

var re = /&user_story=.*?(?=&|$)/g

console.log(string.replace(re, ""));

В разбивке:

/&user_story=.*?(?=&|$)/g

&user_story= - проверяет, начинается ли совпадение с "&user_story="

.*? - соответствует любому количеству любых символов, но ? делает его нежадным, поэтому он найдет как можно меньше этих символов, прежде чем найдет следующую часть регулярного выражения

(?=&|$) - квадратные скобки делают это группой, а ?= означает, что это предварительный просмотр, т.е. он не будет фактически добавлять совпадения в совпадение регулярного выражения, а просто проверяет их наличие. Он будет соответствовать либо другому &, либо концу строки (обозначенному $).

g - это флаг, который сообщает регулярному выражению проверить всю строку, а не останавливаться после просто нахожу одно совпадение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...