我想创建一个正则数字格式的正则表达式。
我是正则表达式的新手,这是我得到的。
function keyEvents(target) {
var element = document.getElementById(target);
element.addEventListener('keyup', function(evt) {
if (isNaN(this.value) || (evt.keyCode === 70)) {
this.value = this.value.replace(/[^0-9]/g, '');
};
});
};
keyEvents('dateInput');
当我引入像'12112001'这样的字符串时,我希望它的格式如此'12 / 11/2001'。
是否可以仅使用正则表达式进行此操作?
这是指向JsFiddle的链接:https://jsfiddle.net/w7fduzx3/1/
答案 0 :(得分:0)
这个会起作用:
"12112001".replace(/(\d{2})(\d{2})(\d{4})/, "$1/$2/$3");
通过在Regexp中使用括号,您可以定义匹配组,然后通过$<number>
运算符访问它们。上面的正则表达式只是将数字字符串拆分为三组:
2位数 - 2位数 - 4位数和&#34;加入&#34;他们/
答案 1 :(得分:0)
这是一个没有正则表达式的解决方案,使用substr()
(稍快):
var date = '12112001';
date = date.substr(0,2)+'/'+date.substr(2,2)+'/'+date.substr(4,4);