Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.11.2010, 18:28
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Вопрос по регулярным выражениям JavaScript
Столкнулся с проблемой динамической генерации регулярных выражений: с каждым циклом регулярное выражение меняется (складывается из произвольного числа разных частей, т.е. сначала new RegExp(part1 + part2), далее new RegExp(part1 + part1 + part2) и т.д.) и приходится использовать команду new RegExp. Только не знаю, как задать в это выражение модификатор ... если использовать конструкцию типа new RegExp (part1 + part2 + 'g'), то g оказывается внутри регулярного выражения его частью, а не модификатором, а если использовать конструкцию типа new RegExp (part1 + part2) + 'g', то результатом является уже строка, а не регулярное выражение...
Кто какие идеи может подкинуть для решения проблемы?
Ответить с цитированием
  #2 (permalink)  
Старый 30.11.2010, 18:31
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Вам в справочник, изучать new RegExp
http://javascript.ru/regexp

Вторым аргументом флаги задаются
Ответить с цитированием
  #3 (permalink)  
Старый 30.11.2010, 20:41
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Невнимательность - страшная штука))) Половину инета перерыл, а ответ на поверхности...
В моем справочнике А. Гончаров "Веб-Дизайн", да и в Л.Д. Слепцова "Javascript" в RegExp не упоминается о втором необязательном параметре этой функции...
Ответить с цитированием
  #4 (permalink)  
Старый 30.11.2010, 20:51
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Значит, плохие справочники.
Ответить с цитированием
  #5 (permalink)  
Старый 30.11.2010, 20:52
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Сообщение от demoniqus Посмотреть сообщение
Невнимательность - страшная штука))) Половину инета перерыл, а ответ на поверхности...
В моем справочнике А. Гончаров "Веб-Дизайн", да и в Л.Д. Слепцова "Javascript" в RegExp не упоминается о втором необязательном параметре этой функции...
Пользуйтесь http://javascript.ru/manual
Ответить с цитированием
  #6 (permalink)  
Старый 01.12.2010, 00:05
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Буду внимательно изучать.
Еще, если можете, подскажите вот такую штуку... Вот код
function mf() {
doku = document.getElementById('iframe1').contentDocument;
alert (doku);
clearTimeout(tid);

}

function AddNewScale() {
request = GenerateXMLHttpRequest ('', "php/getscale.php");
result = '<table style="width: 100%"><tr><td colspan=2 style="text-align: right;"><a href="javascript: void(0)" onClick="obj = document.getElementById(\'divNewScale\'); obj.innerHTML = \'\'; obj.style.backgroundColor = \'#ffffff\'; obj.style.borderStyle = \'none\'"><img src="img/delete.png" title="Скрыть справку" alt="Скрыть справку" style="border-style: none"></a></td></tr><tr>';
result += '<td style="width: 20%; border-right-style: solid; border-color: #aaaaaa; border-width: 3px">'
result += 'Наименование узла шкалы<br /><input type="text" size=30 maxlenght="21" id="NameNodeScale" onkeypress="CounterSymbols(\'NameNodeScale\', \'LengthNameNode\', 21)" onkeydown="CounterSymbols(\'NameNodeScale\', \'LengthNameNode\', 21)" onkeyup="CounterSymbols(\'NameNodeScale\', \'LengthNameNode\', 21)" onChange="CounterSymbols(\'NameNodeScale\', \'LengthNameNode\', 21)"/><br />';
result += '<div id="LengthNameNode" style="font-size: 0.6em">Осталось символов 21</div><br />';
result += '<div>Значения:<br /><textarea cols=23 rows=4 id="ScaleValues"></textarea><br /><span style="font-size: 0.6em">(Перечислите через точку с запятой все значения, которые будут доступны для этого признака. Например 001;002;003)</span></div><br />';
result += '<input type=button value="Сохранить" onClick="SaveNodeScale()" />';
result += '</td>';
result += '<td style="background-color: lime"><iframe id="iframe1" src="scale.svg" style="border: 0px none ; overflow: hidden; width: 400px; height: 200px;"></iframe></td></tr></table>';
document.getElementById('divNewScale').innerHTML = result;

setTimeout("mf()", 1);
alert (document.getElementById('iframe1').contentDocument);
.....

alert, который в функции mf() - 3-яч строка кода, пишет SVGDocument. В другом месте скрипт также возвращает SVGDocument
alert, который стоит непосредственно после setTimeout - 21-я строка кода, пишет HTMLDocument. Почему так происходит?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
Вопрос по регулярным выражениям onejsquestion Общие вопросы Javascript 3 08.08.2010 17:34
Вопрос о циклических ссылках (JavaScript -> Dom -> JavaScipt) BlueIce Events/DOM/Window 10 17.02.2010 21:58
Вопрос по регулярным выражениям demoniqus Общие вопросы Javascript 0 04.03.2009 11:08