Muranx
@Muranx
кто понял this тот в цирке не смеётся

Почему в данном случае не мэтчится регулярное выражение?

Здравствуйте!

let n = 12.355; console.log(n.toFixed(2))
let n = 12.355 ; console.log(n.toFixed(5));
console.log(12.toFixed(5));
console.log(12..toFixed(5));
console.log(1e3); // 1000
console.log(5e-2);
console.log(1e500);
console.log(0/0);
console.log(1/0);
console.log(isNaN("12"));
console.log(NaN !== 0/0);
console.log(typeof +"Infinity");
console.log(+"12px");
console.log(typeof +"\n12");
console.log(+"1 2");
console.log(+"1, 2");


fc = document.querySelectorAll('.forCode'); // это коллекция всех див блоков, в каждом из которых содержится код представленный в хтмл

let regObj = {
	'console' : '<span style="color: red;">',
	'isNaN' : '<span style="color: red;">',
	'toFixed' : '<span style="color: red;">',
	'Infinity' : '<span style="color: red;">',
	'let' : '<span style="color: #7592c7;">',
	'typeof' : '<span style="color: #7592c7;">',
	'".+"' : '<span style="color: green;">', // ПОЧЕМУ не мэтчится?
};

for(let p in regObj){
	for(let k=0; k<fc.length; k++){
		fc[k].innerHTML = fc[k].innerHTML.replace(p, m => regObj[p]+m+'</span>');
	};
};


Есть массив html элементов на странице, есть объект у которого ключ это "регулярное выражение" а значение это то, что будет подставляться в функцию replace( ) для замены. Мне это нужно чтобы подсветить стандартный синтаксис JS в документе, НО почему-то не получается заменить строку // ПОЧЕМУ не мэтчится?. Хотя если проверить, то /".+"/gim.test('isNaN("12")') работает корректно, и возвращает true! Как можно в данной реализации устранить эту проблему, и подсветить стандартным для многих сайтов зелёным цветом строки в html коде? Спасибо!
p.s.: нужна именно вся инфа в кавычках ( + сами кавычки ), а не толкьо \w+, ну в общем те кто ответит на этот вопрос и сами вкурсе что вся информация в строчном варианте подсвечивается зелёным на большинстве сайтов!
  • Вопрос задан
  • 188 просмотров
Пригласить эксперта
Ответы на вопрос 2
rpsv
@rpsv
делай либо хорошо, либо никак
Опять? Серьезно?! Это какая-то курсовая?
const regex = /"(.+?)"/gs;

Пример: https://regex101.com/r/Lc2DmI/1
Ответ написан
@ar2rsoft
PHP-developer
Можно сделать new RegExp(<тут ваша рега>)
Это создаст регулярку из вашей строки и она уже будет срабатывать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 07:20
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект