Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2010, 22:10
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

str.replace('^0','');
ПОчему нельзя сделать вот так, или как то похоже, почему надо специально заводить переменную RegExp или писать не в кавычках и в / /
можно ли это как-то обойти, чтобы всё писать в кавычка без новой переменной?
str="0 1 10 0 10 10 1";
i=str.replace('^0','');
alert(i);
Ответить с цитированием
  #2 (permalink)  
Старый 20.04.2010, 22:12
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

str="0 1 10 0 10 10 1";
i=str.replace(new RegExp('^0'),'');
alert(i);
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #3 (permalink)  
Старый 20.04.2010, 22:21
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

хм, вы о чем, чем вам // не угодили?
alert("0 1 10 0 10 10 1".replace(/^0/, ''));
Ответить с цитированием
  #4 (permalink)  
Старый 20.04.2010, 22:24
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Потому что необязательно использовать регулярное выражение, можно просто заменить подстроку.
alert("aabbcc".replace("bb", "11"));
Ответить с цитированием
  #5 (permalink)  
Старый 20.04.2010, 22:26
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

А если быдет такой вариант
window.str="0 1 10 10 20 0";
function change(a)
{
return window.str.replace("(^|\\s)"+a+"($|\\s)",'.......');
}
alert(change('1'));
Ответить с цитированием
  #6 (permalink)  
Старый 20.04.2010, 22:27
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

то нифига не будет
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 20.04.2010, 22:30
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

ВОт то и оно что хочется именно такой вариант
Ответить с цитированием
  #8 (permalink)  
Старый 20.04.2010, 22:34
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Чем оно хочется?
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #9 (permalink)  
Старый 20.04.2010, 22:37
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

В PHP есть str_replace и ereg_replace, а ту все в один метод объединили, поэтому для агрументов типа string и regexp разное поведение.

Ну если сильно хочется, то можно добавить свой метод:
String.prototype.replaceEx = function (search, flags, replace) {
    if (arguments.length == 2) {
        replace = flags;
        flags = undefined;
    }
    return this.replace(new RegExp(search, flags), replace);
};


alert("aa bb cc aa".replaceEx("aa$", "ee"));

Последний раз редактировалось Octane, 20.04.2010 в 22:47.
Ответить с цитированием
  #10 (permalink)  
Старый 20.04.2010, 22:47
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Спасибо Октан, эх если здесь можно было не ограничено ставить +
я бы тебе ёже тысяч на 100 поставил
Ответить с цитированием
Ответ



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

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