Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 06.01.2011, 13:23
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Сообщение от MCTrane Посмотреть сообщение
Не работает..
Вот например такой случай:
<script language="JavaScript" type="text/javascript">
var text = "JOOMtest1*";
alert('JOOMtest1*test2JOOMtest3%test4JOOM'.replace(new RegExp("\\*.+?" + text, "g"), text));
</script>

Должно вывестись JOOMtest1JOOMtest3%test4JOOM, а выводит JOOMtest1JOOMtest1*3%test4JOOM
Во-первых:
var text = "JOOM";

Во вторых:
* и % - разные вещи.

Если надо и то и то:
var text = "JOOM";
alert('JOOMtest1*test2JOOMtest3%test4JOOM'.replace(new RegExp("[*%].+?" + text, "g"), text));

Потому я и спрашивал в начале о вариантах строк.

Сообщение от MCTrane Посмотреть сообщение
P.S. Блин, как сделать чтобы можно было запустить код?
[JS run]/[HTML run]

Последний раз редактировалось Aetae, 06.01.2011 в 13:25.
Ответить с цитированием
  #12 (permalink)  
Старый 06.01.2011, 13:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от MCTrane
Должно вывестись JOOMtest1JOOMtest3%test4JOOM
Так вот...
alert('JOOMtest1*test2JOOMtest3%test4JOOM'.replace(/\*test2/g,''))
Ответить с цитированием
  #13 (permalink)  
Старый 06.01.2011, 13:27
Аватар для MCTrane
Профессор
Отправить личное сообщение для MCTrane Посмотреть профиль Найти все сообщения от MCTrane
 
Регистрация: 26.11.2009
Сообщений: 204

Тоже не работает,
var text = "JOOM";
alert('JOOMtest1*test2JOOMtest3*test4JOOM'.replace(new RegExp("[*%].+?" + text, "g"), text));

Выводит JOOMtest1JOOMtest3JOOM
А надо : JOOMtest1JOOMtest3%test4JOOM
Ответить с цитированием
  #14 (permalink)  
Старый 06.01.2011, 13:28
Аватар для MCTrane
Профессор
Отправить личное сообщение для MCTrane Посмотреть профиль Найти все сообщения от MCTrane
 
Регистрация: 26.11.2009
Сообщений: 204

Сообщение от ksa Посмотреть сообщение
Так вот...
alert('JOOMtest1*test2JOOMtest3%test4JOOM'.replace(/\*test2/g,''))
Сейчас попробую
Ответить с цитированием
  #15 (permalink)  
Старый 06.01.2011, 13:31
Аватар для MCTrane
Профессор
Отправить личное сообщение для MCTrane Посмотреть профиль Найти все сообщения от MCTrane
 
Регистрация: 26.11.2009
Сообщений: 204

Сообщение от ksa Посмотреть сообщение
Так вот...
alert('JOOMtest1*test2JOOMtest3%test4JOOM'.replace(/\*test2/g,''))
var text = "\*test2";
alert('JOOMtest1*test2JOOMtest3*test4JOOM'.replace(new RegExp("/" + text, "g"), ''));

Работает, большое спасибо, но я "test2" не знаю, там может быть всё что угодно.. Если б знал то воспользовался str_replace и не мучался...
Как можно сделать, если я знаю только test1

Последний раз редактировалось MCTrane, 06.01.2011 в 13:42. Причина: Извиняюсь, нашёл у себя ошибку
Ответить с цитированием
  #16 (permalink)  
Старый 06.01.2011, 13:34
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

MCTrane, ты меня убиваешь... Ты можешь сформулировать задачу?
Ответить с цитированием
  #17 (permalink)  
Старый 06.01.2011, 13:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Думай головой. Самый первый вариант рабочий.
Ответить с цитированием
  #18 (permalink)  
Старый 06.01.2011, 13:51
Аватар для MCTrane
Профессор
Отправить личное сообщение для MCTrane Посмотреть профиль Найти все сообщения от MCTrane
 
Регистрация: 26.11.2009
Сообщений: 204

Сообщение от Aetae Посмотреть сообщение
Думай головой. Самый первый вариант рабочий.
Нет, а если тот элемент который нужно вырезать, последний или в середине?
Ответить с цитированием
  #19 (permalink)  
Старый 06.01.2011, 13:55
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

MCTrane, теперь-то оно?

var text = "*test2";
text=new RegExp('\\'+text, "g")
alert('JOOMtest1*test2JOOMtest3*test4JOOM'.replace(text, ''));
Ответить с цитированием
  #20 (permalink)  
Старый 06.01.2011, 13:57
Аватар для MCTrane
Профессор
Отправить личное сообщение для MCTrane Посмотреть профиль Найти все сообщения от MCTrane
 
Регистрация: 26.11.2009
Сообщений: 204

Сообщение от ksa Посмотреть сообщение
MCTrane, ты меня убиваешь... Ты можешь сформулировать задачу?
У меня есть например строка:
JOOMtest1*test2JOOMtest3%test4JOOMtest5%test6JOOM
Я знаю только что нужно вырезать тот участок строки где есть например test1, а на участки делит "JOOM", можно конечно делать explode(), но это слишком много, и я решил через регулярные выражения.
Также я хотел сделать через AJAX, но потом подумал что в JS тоже есть рег. выражения. Но с ними сложнее...
Т.е. шаблон выреза что-то типа такого:
JOOMtest1*[то_что_я_не_знаю]JOOM
Причём "то_что_я_не_знаю" я не знаю.
Сообщение от ksa Посмотреть сообщение
MCTrane, теперь-то оно?

var text = "*test2";
text=new RegExp('\\'+text, "g")
alert('JOOMtest1*test2JOOMtest3*test4JOOM'.replace(text, ''));
Я же говорю test2 я не знаю, я знаю только test1 или test3, а test2 и test4 не знаю

Последний раз редактировалось MCTrane, 06.01.2011 в 14:02.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка e-mail регулярное выражение mycoding Общие вопросы Javascript 4 09.02.2017 10:12
регулярное выражение theo_ Общие вопросы Javascript 15 21.06.2010 10:29
Регулярное выражение jetli13 Общие вопросы Javascript 9 11.01.2010 21:40
Регулярное выражение для поиска смайлов. NightmareZ Общие вопросы Javascript 13 23.06.2009 13:12
помогите составить регклярное выражение olgatcpip Общие вопросы Javascript 7 05.05.2009 14:20