gpt4 book ai didi

自动格式化 Pattern 的 JavaScript RegExp

转载 作者:可可西里 更新时间:2023-11-01 02:23:11 25 4
gpt4 key购买 nike

我在 stackflow 社区看到很多格式化电话或数字(逗号和小数)的函数,比如这个问题 here和别的。这是我想要的:

第 1 步:为这样的模式维护库:

var library = {
fullDate : {
pattern : /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/,
error : "Invalid Date format. Use YYYY-MM-DD format."
},
fullDateTime : {
pattern : /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{1,2}:[0-9]{1,2}$/,
error : "Invalid DateTime format. Use YYYY-MM-DD HH:MM (24-hour) format."
},
tel : {
pattern : /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/,
error : "Invalid Telephone format."
}
};

第 2 步:在他们键入时自动添加字符。例如,添加 -在日期中的 4 个数字之后。

我有一个文本字段说:

<input type="text" data-validate="fullDate" placeholder="YYYY-MM-DD"/>

以及启动脚本的可能位置:

$('body').on('keyup','input',function(){
var validate = $(this).data('validate');
var pattern = library[validate].pattern;


//Some more steps here....

});

但是,我不能再进一步了,因为我是 RegExp 的新手。这是一个 startup fiddle 。有人吗?

进一步说明:我已经能够使用以下函数进行验证,但我想要的是自动制作模式:

function validate(libraryItem, subject){
var item = library[libraryItem];
if(item !== undefined){
var pattern = item.pattern;
if(validatePattern(pattern, subject)){
return true;
} else {
return item.error;
}
}
return false;
}


function validatePattern(pattern, subject){
return pattern.test(subject);
}

最佳答案

它没有你想象的那么复杂。您正在寻找的是 JQuery Masked input 和其他替代库。这是 documentation .您只需要:

 <input id="date" type="text" placeholder="YYYY-MM-DD"/>

和脚本:

 $("#date").mask("9999-99-99",{placeholder:"YYYY-MM-DD"});

这是演示笔链接: http://codepen.io/anon/pen/gpRyBp

要实现验证,请使用此库: https://github.com/RobinHerbots/jquery.inputmask

关于自动格式化 Pattern 的 JavaScript RegExp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30698837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com