Size: a a a

2020 June 02

GP

Galina Prokofeva in BeerJS Moscow
Я так не поехала в родной город во Владимирскую
источник

GP

Galina Prokofeva in BeerJS Moscow
О, String.prototype.replaceAll уже в FF
источник

AL

Andrey Listochkin in BeerJS Moscow
Kirill {}
String.prototype.replaceAll = function (str1, str2, ignore) {
   return this.replace(
       new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g, "\\$&"), (ignore ? "gi" : "g")), (typeof (str2) == "string") ? str2.replace(/\$/g, "$$$$") : str2);
}
Это ж регулярка, чтоб заэскейпить регулярку. Чтобы в replace(/string/g, …) можно было безопасно вставить.
источник

K{

Kirill {} in BeerJS Moscow
Ну да, но это же жесть.
источник

AL

Andrey Listochkin in BeerJS Moscow
Чего?
источник

K{

Kirill {} in BeerJS Moscow
Это все просто к тому, что replaceAll это отличное решение
источник

K{

Kirill {} in BeerJS Moscow
И о том, в какие дебри попадает человек, который просто хочет использовать replace на всю строчку и не понимает, почему для этого надо использовать регулярку.
источник

AL

Andrey Listochkin in BeerJS Moscow
в JS нет дефолтового метода для эскейпа регулярок, и эту регулярку приходится копипастить. Я в своем коде ее просто называю красиво типа REGEX_ESCAPE и код начинает нормально читаться
источник

AL

Andrey Listochkin in BeerJS Moscow
я согласен, replaceAll удобней
источник

K{

Kirill {} in BeerJS Moscow
Я сегодня узнгал, что даже был пропозал типо Regexp.escape
источник

K{

Kirill {} in BeerJS Moscow
Но его отклонили еще давным давно
источник

AL

Andrey Listochkin in BeerJS Moscow
Kirill {}
Но его отклонили еще давным давно
блин, зря они
источник

K{

Kirill {} in BeerJS Moscow
Ну там были причины
источник

K{

Kirill {} in BeerJS Moscow
источник

AL

Andrey Listochkin in BeerJS Moscow
мне Regex.escape был не только для replaceAll нужен, а и где-то еще пригождался
источник

AL

Andrey Listochkin in BeerJS Moscow
Короче, из-за конкатенации строк. Ну чтож
источник

SR

Sergey Rubanov in BeerJS Moscow
источник

SR

Sergey Rubanov in BeerJS Moscow
> Rejected: in favor of exploring a template tag function solution
источник

Ф

Фенька in BeerJS Moscow
Ура, в июле в Нижнекамск!
источник

AL

Andrey Listochkin in BeerJS Moscow
Sergey Rubanov
> Rejected: in favor of exploring a template tag function solution
ну там же в треде обсуждали эти варианты, и сошлись на том, что делать это в общем виде слишком сложно и слишком раздувает спеку и имплементацию, а для частных случаев люди и так возьмут и скопипастят ту регулярку на 14 спецсимволов. Поэтому сушим весла
источник