收藏的一些正则

去除参数获取网站主机名

1
2
const url = `${window.location.href.match(/(\w+):\/\/([^/:]+)(:\d*)?/)[0]}`;
//例:输入http://www.w3school.com.cn/js/js_obj_regexp.asp,输出为http://www.w3school.com.cn

日期合法性校验

日期的合法性校验主要是指校验日期时间是否合法。假如需要用户输入产品的保质期时,输入的值为2018-09-40,那么将返回false,因为9月份不存在40号,它是一个非法的日期数据。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function validateDate(str) {
var reg = /^(\d+)-(\d{1,2})-(\d{1,2})$/;
var r = str.match(reg);
if (r == null) return false;
r[2] = r[2] - 1;
var d = new Date(r[1], r[2], r[3]);
if (d.getFullYear() != r[1]) return false;
if (d.getMonth() != r[2]) return false;
if (d.getDate() != r[3]) return false;
return true;
}

console.log(validateDate('2018-08-20')); // true
console.log(validateDate('2018-08-40')); // false

收藏的一些正则
https://xypecho.github.io/2018/03/08/收藏的一些正则/
作者
很青的青蛙
发布于
2018年3月8日
许可协议