2014-01-28 2 views
0

По какой-то причине когда-либо я нажимаю кнопку разделить, умножить, добавить или вычесть. Что должен делать код, если есть что-то вроде оператора, когда вы нажимаете его, он заменяет его, а вместо этого заменяет все, что является последней буквой.Калькулятор jquery, удаляющий элементы перед оператором. jQuery

$(".Button:eq(2)").click(function(){ 
    var R1 = $("#Num_View"); 
    R1.val(R1.val().replace(/[*/+-x]?$/, '-')); 
}); 

ответ

0

Изменение

R1.val(R1.val().replace(/[*/+-x]?$/, '-')); 

в

R1.val(R1.val().replace(/[\*\+-x]/, '-')); 

должен работать.

Поскольку вы уже используете функцию замены, вам не нужен ? (ноль или один), а $ соответствует концу строки, поэтому, удалив это, вы можете заменить где угодно в своей строке.

+0

Нет, заменить начало каким-то причинам. Мне нужно только заменить конец, если это +, /, -, x. И если нет, мне нужно, чтобы он все еще добавлял минус-символ. – CDW

+0

Я вижу ошибки моих путей. Я обновил регулярное выражение, чтобы правильно сбежать с '\\'. Вы также можете проверить http://regexpal.com/, чтобы помочь вам написать собственное регулярное выражение. – wharding28

0

Ваше регулярное выражение должно соответствовать глобально (путем добавления флага g) без соответствия конца строки (без знака $). Кроме того, не забудьте избежать зарезервированных символов (в вашем случае это будет *, +, - и /).

Полученное регулярное выражение должно выглядеть следующим образом:

$(".Button:eq(2)").click(function(){ 
    var R1 = $("#Num_View"); 
    R1.val(R1.val().replace(/[\*\/\+\-x]/g, '-')); 
}); 
+0

Он заменил вещь в начале не в конце. И он ничего не добавил, если бы его там не было. – CDW

+0

@CDW Есть ли у вас примеры того, как обычно выглядят значения 'R1.val()'? – joelrobichaud

+0

Что вы имеете в виду? – CDW

Смежные вопросы