当我点击它链接到的按钮时,它会减去每个字母,但减去符号。以下代码是否有问题。
$(".Button:eq(2)").click(function(){
if ($("#Num_View").val($("#Num_View").val().substring($("#Num_View").val($("#Num_View").val().length-1) == "+"))) {
$("#Num_View").val($("#Num_View").val().substring(0, $("#Num_View").val($("#Num_View").val().length-1)));
}
$("#Num_View").val($("#Num_View").val() + "-");
});
代码应该看看输入字段值中的最后一个运算符是否是乘法,除法,加号和减号。如果其中一个在那里,用减号代替它,但如果没有,则添加一个减号。
答案 0 :(得分:1)
如果你只是删除一个可选的尾随+
并添加一个尾随-
,那么你可以这样做:
var nv = $("#Num_View");
$(".Button:eq(2)").on( 'click', function(){
nv.val( nv.val().replace( /\+?$/, '-' ) );
});
或
var nv = $("#Num_View");
$(".Button:eq(2)").on( 'click', function(){
nv.val( function(index,value){ return value.replace( /\+?$/, '-' ) } );
});
修改强>
我希望首先检查是否有任何符号在乘法,除法,加法和减号之前。如果其中一个在那里,它用减号替换它。但是,如果没有,那么它将向前推进并添加减号
像这样:
var nv = $("#Num_View");
$(".Button:eq(2)").on( 'click', function(){
nv.val( nv.val().replace( /[*/+-]?$/, '-' ) );
});
或
var nv = $("#Num_View");
$(".Button:eq(2)").on( 'click', function(){
nv.val( function(index,value){ return value.replace( /[*/+-]?$/, '-' ) } );
});
答案 1 :(得分:0)
您似乎想要移除尾随的+
(如果有),并将其替换为-
。
如果是这样,请用以下内容替换回调正文:
$('#Num_View').val(function(_, t) {
return t.replace(/\+$/, '-');
});
注意:$(el).on('click', f)
这些天比$(el).click(f)
更受欢迎。如果您始终使用.on
注册事件处理程序,则可以避免可能出现的混淆,因为.click
用于注册单击处理程序和触发单击事件。