Я хочу заменить, если строка начинается с /
до следующего уникального символа ... Я пробовал, как показано ниже, но он заменяет все вхождения только одним! Я хочу заменить все символы вхождения ...
var textTitle = "///test///";
var result = textTitle.replace(/^\/{1,}/g, '../');
console.log(result); // wanted => ../../../test///
textTitle = "//test/";
result = textTitle.replace(/^\/{1,}/g, '../');
console.log(result); // wanted => ../../test/
1
David Jaw Hpan
14 Мар 2018 в 11:54
2 ответа
Лучший ответ
Используйте флаг y
, который делает один шаг при каждом успешном подходе к свойству lastIndex
:
console.log("///test///".replace(/\//gy, "../"));
1
revo
14 Мар 2018 в 09:12
Вы можете попробовать:
var textTitle = "///test///";
var result = textTitle.replace(/^\/{1,}/g, (match, key) => {
return match.split('').reduce((res, next) => res += '..' + next, '');
});
console.log(result);
var textTitle = "///test///";
var result = textTitle.replace(/^\/{1,}/g, (match, key) => {
return match.split('').reduce((res, next) => res += '..' + next, '');
});
console.log(result);
0
David Ibl
14 Мар 2018 в 09:03
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.