Как выполнить метод в виде переменной
Здравствуйте!
Подскажите пожалуйста, как можно выполнить вот такое? Здесь у меня undefined: val = 'HeLLo WOrld'; exp = "replace(/s*/g,'-')" alert(val[exp]) В плагине пользователь передает текст и шаблон поиска в JS и получает результат. То есть нужно сложить конструкцию из двух переменных: text + method статический вариант такой: val = 'HeLLo WOrld'; rusult = val.replace(/s*/g,'-') alert(rusult) Перечитал много документации, но никак не получается... А вот если с именем функции - получается. Спасибо! |
eval('val.' + exp); |
Цитата:
А есть возможность обойтись без eval? |
Цитата:
вот если юзер будет присылать только регекс (и строку для замены), то легко. |
HJ90, есть, можно так.
var val = 'HeLLo WOrld'; var ex = "replace(/s*/g,'-')"; var test = new Function('return val.' + ex + ';'); alert( test() ); |
Цитата:
Ruslan_xDD, большое Вам спасибо!! :) |
Цитата:
можно так: var val = 'HeLLo WOrld'; var ex = "replace(/s*/g,'-')"; var _test = new Function('val,ex', 'return val.' + ex + ';'); var test = function() { return _test(val,ex); }; alert( test() ); |
Яростный Меч, странно, только что тестил - всё работает.
|
Цитата:
|
А как понимать такую запись "Function" ?
Первый раз такое вижу... аа, блин ..все ок |
Часовой пояс GMT +3, время: 05:12. |