Javascript 如何屏蔽除最后一个数字以外的所有内容

Javascript 如何屏蔽除最后一个数字以外的所有内容,javascript,jquery,jquery-mask,Javascript,Jquery,Jquery Mask,我试图用jquerymask屏蔽除最后一个数字之外的所有内容,但我无法获得执行此操作的逻辑。下面是我到目前为止所做的尝试 $(文档).ready(函数(){ 变量选项={ onKeyPress:功能(值、事件、当前字段、选项){ var fieldVal=currentField.val(); var星=''; 对于(变量i=0;i(o!==str.length-1?'*':m)); currField.val(newVal); } }; $('.phone').mask('00000',选项

我试图用jquerymask屏蔽除最后一个数字之外的所有内容,但我无法获得执行此操作的逻辑。下面是我到目前为止所做的尝试

$(文档).ready(函数(){
变量选项={
onKeyPress:功能(值、事件、当前字段、选项){
var fieldVal=currentField.val();
var星='';
对于(变量i=0;i

您面临的问题与应用的
掩码有关,您正在使用
00000
,而
0
仅接受该位置上的数字作为输入。如选项中所述,您需要添加自定义翻译

为了生成输入的新值,我将使用一个自定义命令将所有字符替换为
*
,最后一个字符除外

例子:
$(文档).ready(函数()
{
变量选项={
翻译:{0:{模式:/[0-9*]/},
onKeyPress:功能(val、evt、currField、选项)
{
让newVal=val.replace(//g,(m,o,str)=>(o!==str.length-1?'*':m));
currField.val(newVal);
}
};
$('.phone').mask('00000',选项);
});

您面临的问题与应用的
掩码有关,您正在使用
00000
,而
0
仅接受该位置上的数字作为输入。如选项中所述,您需要添加自定义翻译

为了生成输入的新值,我将使用一个自定义命令将所有字符替换为
*
,最后一个字符除外

例子:
$(文档).ready(函数()
{
变量选项={
翻译:{0:{模式:/[0-9*]/},
onKeyPress:功能(val、evt、currField、选项)
{
让newVal=val.replace(//g,(m,o,str)=>(o!==str.length-1?'*':m));
currField.val(newVal);
}
};
$('.phone').mask('00000',选项);
});

我建议在这里使用simple
regex
,不需要
jquery.mask

$(“输入[name='phone']”)。键控(函数(){
$(this.val($(this.val().replace(/[^\d\*]/g',).replace(/\d(?=\d{1})/g,'*');
});

我建议在这里使用simple
regex
,不需要
jquery.mask

$(“输入[name='phone']”)。键控(函数(){
$(this.val($(this.val().replace(/[^\d\*]/g',).replace(/\d(?=\d{1})/g,'*');
});


您好,您的问题是什么?因为您的示例屏蔽了除最后一个之外的所有内容。我们无法键入更多的2位数字。应该是5位数,不能超过2位数。嗨,你到底有什么问题?因为您的示例屏蔽了除最后一个之外的所有内容。我们无法键入更多的2位数字。应该是5位数,不能输入超过2位数。如果我们解开掩码,我能得到实际输入的值吗?不,你必须创建一个逻辑,将原始值存储在某个地方。你能给出它的javascript版本吗?@SusheelSingh抱歉,我耽误了回答,我工作了一天,您可以尝试这里提到的解决方案:使用隐藏输入。但是,请注意,您需要使用一些特殊的键,如
backspace
。以这个例子为基础参考。如果我们解开伪装,我会得到实际输入的值吗?不,你必须创建一个逻辑,将原始值存储在某个地方。你能给出它的javascript版本吗?@SusheelSingh抱歉,我耽搁了一天的工作,你可以尝试这里提到的解决方案:使用隐藏输入。但是,请注意,您需要使用一些特殊的键,如
backspace
。以该示例为基础参考。