CookyGG的个人博客

实践发现真理~

  • 首页
  • 关于
  • 标签
  • 分类
  • 归档

javascript js 身份证校验

发表于 2018-11-09 | 分类于 js
字数统计: | 阅读时长 ≈
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var isidcard = function (code) {
//var reNum = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
//return (reNum.test(num))
//身份证号合法性验证
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证
var city = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江 ", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北 ", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏 ", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外 " };
//var row={
// 'pass':true,
// 'msg':'验证成功'
//};
var row = true;
if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/.test(code)) {
//row={
// 'pass':false,
// 'msg':'身份证号格式错误'
//};
row = false;
} else if (!city[code.substr(0, 2)]) {
//row={
// 'pass':false,
// 'msg':'身份证号地址编码错误'
//};
row = false;
} else {
//18位身份证需要验证最后一位校验位
if (code.length == 18) {
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
//校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++) {
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
if (parity[sum % 11] != code[17].toUpperCase()) {
//row={
// 'pass':false,
// 'msg':'身份证号校验位错误'
//};
row = false;
}
}
}
return row;
};

一些 JavaScript 中的代码小技巧

发表于 2018-08-23 | 分类于 js
字数统计: | 阅读时长 ≈

一些 JavaScript 中的代码小技巧

· · ·

JSON.stringify

我们平时经常会用到JSON 对象,比如当我们要实现对象的深拷贝时,我们可以用JSON 对象的JSON.stringify和JSON.parse 来拷贝一个完全一样的对象,而不会对原对象产生任何引用关系。在使用localStorage 时,也会用到它,因为localStorage 只能存储字符串格式的内容,所以,我们在存之前,将数值转换成JSON字符串,取出来用的时候,再转成对象或数组。 对于JSON.stringify 方法,它可以帮我们把一个对象或数组转换成一个JSON字符串。我们通常只会用到它的第一个参数,其实它还有另外两个参数,可以让它实现一些非常好用的功能。 首先来看语法:

JSON.stringify(value[, replacer [, space]])

阅读全文 »

flex布局

发表于 2018-07-02 | 分类于 未分类
字数统计: | 阅读时长 ≈

网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案—-Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 Flex 布局将成为未来布局的首选方案。本文介绍它的语法,下一篇文章给出常见布局的 Flex 写法。网友 JailBreak 为本文的所有示例制作了 Demo,也可以参考。 以下内容主要参考了下面两篇文章:A Complete Guide to Flexbox 和 A Visual Guide to CSS3 Flexbox Properties。

阅读全文 »

你需要了解的23种JavaScript设计模式

发表于 2018-06-06 | 分类于 配置
字数统计: | 阅读时长 ≈

为什么要学习设计模式? 在许多访谈中,你可能会遇到很多面向对象编程中的接口,抽象类,代理和以及其他与设计模式相关的问题。

阅读全文 »

Transition就这么好玩

发表于 2018-06-06 | 分类于 css
字数统计: | 阅读时长 ≈

前言

以前说起前端动画必须使用JS,而CSS3为我们带来transition和@keyframes,让我们可以以更简单(声明式代替命令式)和更高效的方式实现UI状态间的补间动画。本文为近期对Transition的学习总结,欢迎各位拍砖。

属性介绍

阅读全文 »

ES5 部署Object.is

发表于 2018-04-10 | 分类于 js
字数统计: | 阅读时长 ≈

Object.defineProperty(Object, 'is', {
  value: function(x, y) {
    if (x === y) {
      // 针对+0 不等于 -0的情况
      return x !== 0 || 1 / x === 1 / y;
    }
    // 针对NaN的情况
    return x !== x && y !== y;
  },
  configurable: true,
  enumerable: false,
  writable: true
});

sort()方法的用法,参数以及排序原理

发表于 2018-04-08 | 分类于 js
字数统计: | 阅读时长 ≈

sort() 方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。
语法:arrayObject.sort(sortby);参数sortby可选。规定排序顺序。必须是函数。
注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。 若 a 大于 b,则返回一个大于 0 的值。

阅读全文 »

webstorm mac下clear read only status

发表于 2018-03-19 | 分类于 配置
字数统计: | 阅读时长 ≈

一条命令即可搞定: sudo chown -R $USER /XXX(这里就写你项目的目录)、 详见:http://blog.csdn.net/woshifano/article/details/46873173

冒泡排序基本概念

发表于 2018-03-12 | 分类于 未分类
字数统计: | 阅读时长 ≈

冒泡排序
冒泡排序(BubbleSort)的基本概念是:
依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再大于第2个数),将小数放前,大数放后,一直比较到最小数前的一对相邻数,将小数放前,大数放后,第二趟结束,在倒数第二个数中得到一个新的最小数。如此下去,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

实现办法:

阅读全文 »

css垂直居中简单写法

发表于 2018-03-09 | 分类于 css
字数统计: | 阅读时长 ≈

容器元素设为flex布局,子元素只要写margin:auto

123…5

Hao Pu

CookyGG个人站,主要涉及前端知识共享、技术学习等方面

41 日志
7 分类
GitHub E-Mail
Links
  • Web前端导航
  • 创造狮导航
  • 前端书籍资料
  • 掘金酱
  • V2EX
  • 印记中文
© 2019 Hao Pu | Site words total count: