Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JavaScript) Помогите с regexp выражением / 8 сообщений из 8, страница 1 из 1
20.04.2007, 12:11
    #34475553
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
Есть слова обрамленные в <> и разделенные мужду собой пробелом (например <Номер договора> <Дата> <ФИО>) нужно их записать массив
Придумал пока только так
Код: plaintext
1.
2.
 
  var reg=new RegExp("\s<.*>\s","g");
  var pattern = reg.exec(<Номер договора> <Дата> <ФИО>);
в pattern[0] я получаю <Дата>
во всех остальных элементах массива NULL
...
Рейтинг: 0 / 0
20.04.2007, 12:15
    #34475572
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
regExp выражения проверяю тут http://www.regular-expressions.info/javascriptexample.html
...
Рейтинг: 0 / 0
20.04.2007, 13:23
    #34475849
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
Код: plaintext
1.
2.
3.
4.
5.
var reg=new RegExp("<.*?>","g");
var dst=document.getElementById('accessible_tag');
var pattern = reg.exec(dst.value);
alert(pattern[ 0 ]);
alert(pattern[ 1 ]);
alert(pattern[ 2 ]);

пробую так но получаю только первый элемент в масиссиве остальные undefined
...
Рейтинг: 0 / 0
20.04.2007, 13:50
    #34475969
mrJust
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
aL MIRслова обрамленные в <> и разделенные мужду собой пробелом
т.е. из строки
Код: plaintext
"<Номер договора> <Дата> <ФИО> <Однослово>"
получаем массив из одного элемента
Код: plaintext
"<Номер договора>"
?
А Строка может быть например такой:
Код: plaintext
"<Номер договора> <Дата> какаято хрень<ФИО><Однослово>"
...
Рейтинг: 0 / 0
20.04.2007, 14:32
    #34476163
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
mrJust
Код: plaintext
"<Номер договора> <Дата> <ФИО> <Однослово>"
получаем массив из одного элемента
Код: plaintext
"<Номер договора>"
?

Да но мне нада чтоб в массив записались все
mrJust
А Строка может быть например такой:
Код: plaintext
"<Номер договора> <Дата> какаято хрень<ФИО><Однослово>"


Да и даже такой ;-)
Код: plaintext
"<Номер договора> <Дата> какаято<>хрень<ФИО><Одно<слово>"
[/quot]

Переделал немного рег выражение теперь выглядит так:
Код: plaintext
1.
2.
3.
4.
5.
6.
var reg=new RegExp("<[^<>]+>","g");
  var dst=document.getElementById('accessible_tag');
  var pattern = reg.exec(dst.value);
  //проверка массива (первые три элемента)
  alert(pattern[ 0 ]);
  alert(pattern[ 1 ]);
  alert(pattern[ 2 ]);
но все равно в массиве только один элемент :-(
...
Рейтинг: 0 / 0
20.04.2007, 18:15
    #34477225
mrJust
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
aL MIRДа и даже такой ;-)

"<Номер договора> <Дата> какаято<>хрень<ФИО><Одно<слово>"

Но эта строка невалидна. Вам для начала...
фак, нихрена непонятно какие входные данные, а какие выходные.
Почитайте статейки по регуляркам
regular expressions
...
Рейтинг: 0 / 0
21.04.2007, 09:00
    #34477834
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
aL MIR
Да и даже такой ;-)
Код: plaintext
"<Номер договора> <Дата> какаято<>хрень<ФИО><Одно<слово>"

а такой?
Код: plaintext
"<Номер договора> какаято хрень 2<3 & 01.01.2001><Дата>  <ФИО>Одно<слово>"
что тогда должно быть в массиве тэгов?

думаю нужно либо ограничить формат исходных данных,
либо следить за входами конкретных подстрок(например <Номер договора> <Дата> <ФИО>), а другие сочетания с < > не трогать

почему не работает exec не знаю :(
...
Рейтинг: 0 / 0
23.04.2007, 08:18
    #34479277
aL MIR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(JavaScript) Помогите с regexp выражением
Сделал так, работает! :-)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
function CheckInPattern() {
  //ищем непарные скобки <>
  var re = /<([^<>]+)>/g;
  var dst = document.getElementById('custom_np_text');
  var myArray = dst.value.match(re);
  var str = document.getElementById('accessible_tag');
  var error = false;
  //ищем в тексте все теги, ищем найденные в разрешенных
  for (i= 0 ; i<=myArray.length- 1 ; i++) {
	if (str.value.search(myArray[i])==- 1 ) {
	error=true;
	break;
    }
  }  
  if (error) {
     alert('Неверное использование тега! '+myArray[i]);
     dst=document.getElementById('custom_np_text');
     dst.focus();
     return false;
  } else 
     return true;
}
</script>
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (JavaScript) Помогите с regexp выражением / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]