Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярные выражения (https://javascript.ru/forum/misc/53159-regulyarnye-vyrazheniya.html)

d.skuratovich 23.01.2015 15:20

losos100, не пойдет ни одна из твоих предложенный

losos100 23.01.2015 15:22

d.skuratovich,
наша ваша верит, наша глупей.

d.skuratovich 23.01.2015 15:23

losos100, а теперь представь ситуацию, что перед border-width есть еще одно свойство с заданным 0.5pt
В таком случае, твои варианты не будут работать

d.skuratovich 23.01.2015 15:24

losos100, дурацкая у тебя манера, лишь бы быстрее ответ написать, а работает он или нет не важно!

ruslan_mart 23.01.2015 15:26

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    
    <table>
      <tbody>
        <tr>
          <td id="test" width="82" style="border-width: 0.5pt 0.5pt 0.5pt 0px; border-style: solid solid solid none;">Размер 0.5pt не соответствует</td>
        </tr>
      </tbody>
    </table>

    <script>
      var test = document.getElementById('test');
      alert( test.style.borderWidth.replace(/0\.5pt/g, '1px') );
    </script>

  </body>
</html>

ruslan_mart 23.01.2015 15:40

Цитата:

Сообщение от danik.js
То есть вы, разработчики сайта, напортачили в шаблоне, и теперь пытаетесь исправить ошибку через javascript? Гениально просто ))

Ага, а кто-то ведь не понимает в этом ничего и заплатит за это деньги. :) Ох, если бы заказчик только знал, какой плохокодинг тут творится, но увы, он 100% в этом ничего не понимает.
Пожалуй, начну с того, что:
1. Таблица (table) устарела. Вместо неё либо делать дивами, либо флексбоксами. Хотя я больше чем уверен, что там можно вообще без таблицы обойтись.
2. Атрибут width устарел и приведёт к невалидному коду.
3. Border с шириной 0.666px (0.5pt) не может быть, он будет преобразован в 1px.
4. Получать outerHTML ячейки и парсить стили - изврат, ведь можно на прямую достучаться к стилям через elem.style.
5. Сама реализация писать всё в тэге style - убогость, для этого ведь придумали классы.

d.skuratovich 23.01.2015 17:05

palan, вот есть один вариант. Он будет затрагивать только свойство border-width

'width: 0.5pt; border-width: 0.5pt 1px 0.5pt; height: 0.5pt;'.replace(/(border-width.*?(0.5pt);)/, function (a, b) {
 return b.replace(/(0.5pt)/gim, '1px');
});


Вернет:
"width: 0.5pt; border-width: 1px 1px 1px; height: 0.5pt;"


Но его проблема в том, что здесь все равно двойная замена


Часовой пояс GMT +3, время: 11:26.