Регулярные выражения
Помогите с регулярным выражением.
Нужно заменить подстроку 0.5pt на 1px только в подстроке border-width: 0.5pt 0.5pt 0.5pt 0px; Пример приведенный ниже заменяет во всем тексте: '<td width="82" style="border-width: 0.5pt 0.5pt 0.5pt 0px; border-style: solid solid solid none;>Размер 0.5pt не соответствует</td>'.replace(new RegExp("0.5pt",'g'), '1px') Для чего нужна замена: дело в том что border 0.5pt не отображается в Google Chrome, в IE11 - отображается. Может как то можно решить вопрос без замены? |
0.5pt - это 0.6665px. И как ты себе представляешь половину пикселя?
|
То есть вы, разработчики сайта, напортачили в шаблоне, и теперь пытаетесь исправить ошибку через javascript? Гениально просто ))
|
alert( '<td width="82" style="border-width: 0.5pt 0.5pt 0.5pt 0px; border-style: solid solid solid none;>Размер 0.5pt не соответствует</td>' .replace(/:[^;]+/, function(x){return x.replace(/0.5pt/g, "1px")}) ) |
losos100 Спасибо большое, ответ по существу.
Для остальных выдумщиков: скопируйте в буфер обмена данные из MS Exsel и прочитайте из буфера в браузере EI в виде html, тогда вы поймете откуда эти "шаблоны" берутся и 0.5pt интерпритируються в EI11 |
Цитата:
|
danik.js,
То есть настоящие мужЫки пишут 1000 строк вручную вместо одного реплейса? |
Настоящие мужыки устраняют причину, а не последствия :)
|
Мало того, что сама проблема извращённая, так ещё и с самим её решением наговнокодили. :) Зачем парсить весь HTML тэг, когда можно напрямую в стиль достучаться через td.style.borderWidth? И почему регулярка двойная? Одной никак?
|
Ruslan_xDD,
Вот мой вариант для затравки alert( '<td width="82" style="border-width: 0.5pt 0.5pt 0.5pt 0px; border-style: solid solid solid none;>Размер 0.5pt не соответствует</td>' .replace(/(?=[^]*;)0.5pt/g, "1px") ) твой ход |
Часовой пояс GMT +3, время: 04:37. |