Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.11.2016, 00:19
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

Удалить кириллицу
Здравствуйте
Вставляю в див #marka значение из ячейки текущей строки таблицы
при этом нужно:
убрать кириллицу, которая находится в круглых скобках (вместе со скобками), например: (пустое)
убрать кириллицу+цифры, которые находятся в круглых скобках (вместе со скобками), например: (дд - 2 окна)
убрать кириллицу без скобок, например: с молдингом
если в круглых скобках будет смесь кириллицы/латиницы - убрать вместе со скобками
делаю так:
<div id="marka"></div>

<table id="sf" style="width: 700px;" border="1" cellspacing="0" cellpadding="0">
<tr>
 <td>1</td>
 <td><a href="javascript:void(0)" class="ecodehref">правильно</a></td>
 <td>Audi 80 (SED) (01-04) (пустое) с молдингом (дд - 2 окна)</td>
 <td>79-86</td>
</tr>
<tr>
 <td>2</td>
 <td><a href="javascript:void(0)" class="ecodehref">не правильно</a></td>
 <td>Audi 100 прозрачное (99-04) с молдингом (дд - 2 окна) (номер - vin)</td>
 <td>80-90</td>
</tr>
<tr>
 <td>3</td>
 <td><a href="javascript:void(0)" class="ecodehref">не правильно</a></td>
 <td>стекло Mazda 626 5D HBK прозрачное vin (vin - номер)</td>
 <td>88-92</td>
</tr>
</table>

<script type="text/javascript">
$('.ecodehref').click(function(){
  $('#marka').text($(this).parents('tr').find('td:eq(2)').text().replace(/\([а-яёА-ЯЁ\s\W]+[0-9\s\W]+[а-яёА-ЯЁ]+?\)/g, '')); 
});	
</script>

регулярка справляется с задачей только со значением ячейки первой строки таблицы, во 2 и 3 строке часть кириллицы остается
помогите, пожалуйста, правильно написать регулярное выражение

Последний раз редактировалось rodiony4, 04.11.2016 в 19:39.
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2016, 01:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rodiony4,
так?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
    $(".ecodehref").click(function(event) {
        event.preventDefault();
        var reg = /\(.*?\)/g,
            rus = /[\u0430-\u044f\u0451]/ig,
            str = $(this).parent().next().text();
        str = str.replace(reg, function(a) {
            return rus.test(a) ? "" : a
        }).replace(rus, "");
        $("#marka").text(str)
    })
});
  </script>
</head>

<body>
<div id="marka"></div>

<table id="sf" style="width: 700px;" border="1" cellspacing="0" cellpadding="0">
<tr>
 <td>1</td>
 <td><a href="javascript:void(0)" class="ecodehref">правильно</a></td>
 <td>Audi 80 (SED) (01-04) (пустое) с молдингом (дд - 2 окна)</td>
 <td>79-86</td>
</tr>
<tr>
 <td>2</td>
 <td><a href="javascript:void(0)" class="ecodehref">не правильно</a></td>
 <td>Audi 100 прозрачное (99-04) с молдингом (дд - 2 окна) (номер - vin)</td>
 <td>80-90</td>
</tr>
<tr>
 <td>3</td>
 <td><a href="javascript:void(0)" class="ecodehref">не правильно</a></td>
 <td>стекло Mazda 626 5D HBK прозрачное vin (vin - номер)</td>
 <td>88-92</td>
</tr>
</table>
<script type="text/javascript">

</script>


</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2016, 01:56
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

рони, все супер, спасибо!
еще нужно добавить в див значение четвертой ячейки, как есть, без регулярки
добавляю, но не получается
$("#marka").text(str)+' '+$(this).parents('tr').find('td:eq(4)').text()+' г.в.';
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2016, 02:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rodiony4,
есть строка str, к ней нужно что-то добавить ... а не к обьекту
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2016, 02:30
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

рони, добавляю к строке str, но что-то делаю не так
str = str.replace(reg, function(a) {
	return rus.test(a) ? "" : a
}).replace(rus, "")+' '+($(this).parent('tr').find('td:eq(3)').text()+' г.в.');

Последний раз редактировалось rodiony4, 04.11.2016 в 02:39.
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2016, 02:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

rodiony4,
$("#marka").text(str+' '+$(this).parents('tr').find('td:eq(3)').text()+' г.в.');

str = str.replace(reg, function(a) {


return rus.test(a) ? "" : a


}).replace(rus, "")+' '+($(this).parents('tr').find('td:eq(3)').text()+' г.в.');
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2016, 02:56
Аспирант
Отправить личное сообщение для rodiony4 Посмотреть профиль Найти все сообщения от rodiony4
 
Регистрация: 26.10.2015
Сообщений: 97

рони, большое спасибо, вы мне здорово помогли!
Ответить с цитированием
  #8 (permalink)  
Старый 04.11.2016, 19:15
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от рони
rus = /[\u0430-\u044f\u0451]/ig,
вопрос
почему были использованы не очень наглядные юникодные коды символов
какие-то есть причины не использовать просто
rus = /[а-яё]/ig
?
Ответить с цитированием
  #9 (permalink)  
Старый 04.11.2016, 19:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Pavel M.,
особых причин в данном случае нет
Ответить с цитированием
  #10 (permalink)  
Старый 09.11.2016, 01:37
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Сообщение от Pavel M. Посмотреть сообщение
вопрос
почему были использованы не очень наглядные юникодные коды символов
какие-то есть причины не использовать просто
rus = /[а-яё]/ig
?
Есть, например снять зависимость от кодировки текста скрипта... если допустим поменять кодировку с UTF-8 на Windows-1251 то вместо кириллицы станут кракозябры...

Последний раз редактировалось Rise, 09.11.2016 в 01:46.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите как удалить div alex2012 jQuery 5 13.10.2016 17:43
Удалить некоторые ссылки со страницы при помощи js goga5 Общие вопросы Javascript 7 12.07.2016 14:41
Помогите упростить код открывания панелей Anrew Общие вопросы Javascript 18 14.11.2015 22:15
Как удалить коммит github Maxmaxmaximus6 Оффтопик 59 01.01.2014 19:42
Не могу выбрать и удалить клонируемые элементы AlexPrm jQuery 6 30.05.2010 15:58