Показать сообщение отдельно
  #3 (permalink)  
Старый 13.11.2014, 15:27
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Во-первых, скобки - это спец. символы в регулярках и их надо экранировать:
var string = "10+cos(x)";

alert([
  /cos(x)/gi.test(string), // false
  /cos\(x\)/gi.test(string), // true
  /cos(x)/gi.test("10+cosx") // true
]);

Во-вторых, раз уж эвалишь, используй with:
<script type="text/javascript">

function zap(){
var source = a.value;
var toExecString = "with (Math) return " + source;
var result = Function("x", toExecString)(1);

alert(result);
}

</script>

<input type="text" value="10+cos(x)" id="a">
<br>
<input type="button" value="запуск" OnClick="zap()">
Ответить с цитированием