Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.01.2015, 11:49
Новичок на форуме
Отправить личное сообщение для palan Посмотреть профиль Найти все сообщения от palan
 
Регистрация: 10.04.2013
Сообщений: 3

Регулярные выражения
Помогите с регулярным выражением.
Нужно заменить подстроку 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 - отображается. Может как то можно решить вопрос без замены?
Ответить с цитированием
  #2 (permalink)  
Старый 23.01.2015, 11:58
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

0.5pt - это 0.6665px. И как ты себе представляешь половину пикселя?
Ответить с цитированием
  #3 (permalink)  
Старый 23.01.2015, 12:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

То есть вы, разработчики сайта, напортачили в шаблоне, и теперь пытаетесь исправить ошибку через javascript? Гениально просто ))
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 23.01.2015, 13:15
Аспирант
Посмотреть профиль Найти все сообщения от losos100
 
Регистрация: 21.01.2015
Сообщений: 39

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")})
)
Ответить с цитированием
  #5 (permalink)  
Старый 23.01.2015, 14:03
Новичок на форуме
Отправить личное сообщение для palan Посмотреть профиль Найти все сообщения от palan
 
Регистрация: 10.04.2013
Сообщений: 3

losos100 Спасибо большое, ответ по существу.

Для остальных выдумщиков: скопируйте в буфер обмена данные из MS Exsel и прочитайте из буфера в браузере EI в виде html, тогда вы поймете откуда эти "шаблоны" берутся и 0.5pt интерпритируються в EI11
Ответить с цитированием
  #6 (permalink)  
Старый 23.01.2015, 14:09
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от palan
скопируйте в буфер обмена данные из MS Exsel
Очищаешь код от стилей (есть такая кнопка в редакторе, или пишешь сам), пишешь нужные в css - все прекрасно. Но для тебя это будет слишком сложно, так что довольствуйся предложенным костылем ))
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 23.01.2015, 14:12
Аспирант
Посмотреть профиль Найти все сообщения от losos100
 
Регистрация: 21.01.2015
Сообщений: 39

danik.js,
То есть настоящие мужЫки пишут 1000 строк вручную вместо одного реплейса?
Ответить с цитированием
  #8 (permalink)  
Старый 23.01.2015, 14:40
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Настоящие мужыки устраняют причину, а не последствия
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 23.01.2015, 15:01
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Мало того, что сама проблема извращённая, так ещё и с самим её решением наговнокодили. Зачем парсить весь HTML тэг, когда можно напрямую в стиль достучаться через td.style.borderWidth? И почему регулярка двойная? Одной никак?
Ответить с цитированием
  #10 (permalink)  
Старый 23.01.2015, 15:17
Аспирант
Посмотреть профиль Найти все сообщения от losos100
 
Регистрация: 21.01.2015
Сообщений: 39

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")
)

твой ход

Последний раз редактировалось losos100, 23.01.2015 в 15:19.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения zoinx2010 Общие вопросы Javascript 4 07.02.2014 16:37
регулярные выражения remember_me Общие вопросы Javascript 2 26.12.2013 14:56
Составить регулярные выражения ($) Zero Tolerance Общие вопросы Javascript 10 19.11.2013 13:14
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35