as80393313 最近的时间轴更新
as80393313

as80393313

V2EX 第 213459 号会员,加入于 2017-02-06 11:11:38 +08:00
今日活跃度排名 18138
腾讯是真的让人恶心
互联网  •  as80393313  •  2019-05-14 19:41:04 PM  •  最后回复来自 ygtat
9
as80393313 最近回复了
123 天前
回复了 wsseo 创建的主题 Android 对三星 s21 系列的评价
S9 还能再战 3 年。
140 天前
回复了 he110comex 创建的主题 音乐 以后主用 YouTube Music 听歌了
求个歌单?
153 天前
回复了 slogon 创建的主题 程序员 小米新出的电纸书值得入手么?
新款泡面盖?
有历史局限性不很正常吗。
@reiji 666,值得学习一下
@BlueSky335 😂nice!
2020-01-03 15:28:45 +08:00
回复了 ffffb 创建的主题 程序员 前端的同学,你们是怎么落地自动化测试的?
如果是一套组件库的话可以,就是项目里面几个小组件没必要吧?业务代码写单元测试前端有吗?
@BlueSky335 嗯,我把它放在我的仓库了。0_0 !
https://github.com/ChrisDowney1996/validators
@loading
作者写得有点香啊,这是基于他的改成 JS 版本,简单测试了一下可行,IE5+


/**
* @description 校验身份证 (计算规则参考“中国国家标准化管理委员会”官方文档: http://www.gb688.cn/bzgk/gb/newGbInfo?hcno=080D6FBF2BB468F9007657F26D60013E
* @param value {string} 验证参数
* @return {boolean}
*/
function isID (value) {
if (typeof value != 'string') {
console.warn('参数类型错误:参数类型为 String')
return false
}
// a1 与对应的校验码对照表,其中 key 表示 a1,value 表示校验码,value 中的 10 表示校验码 X
var a1Map = {
0: 1,
1: 0,
2: 10,
3: 9,
4: 8,
5: 7,
6: 6,
7: 5,
8: 4,
9: 3,
10: 2
};
var idStr = value.toUpperCase()
var reg = /^[0-9]{17}[0-9X]$/
if (!reg.exec(idStr)) {
return false
}
var sum = 0
var signChar = ''
for (var index = 0; index < idStr.length; index++) {
var i = 18 - index
var c = idStr.charAt(index)
var v, weight
if (i != 1) {
v = parseInt(c)
if (!isNaN(v)) {
// 计算加权因子
weight = parseInt(Math.pow(2, parseFloat(i - 1))) % 11
sum += (v * weight)
} else {
return false
}
} else {
signChar = c.toString()
}
}
var a1 = a1Map[sum % 11]
var a1Str = a1.toString()
if (a1 == 10) {
a1Str = 'X'
}
return a1Str == signChar
}

/**
* @description 校验法人和其他组织统一社会信用代码的合法性 (// 计算规则参考“中国国家标准化管理委员会”官方文档: http://www.gb688.cn/bzgk/gb/newGbInfo?hcno=24691C25985C1073D3A7C85629378AC0
* @param value {string} 验证参数
* @return {boolean}
*/
function isUSCI (value) {
if (typeof value != 'string') {
console.warn('参数类型错误:参数类型为 String')
return false
}
// 代码字符对应的值
var valueMap = {
'0': 0,
'1': 1,
'2': 2,
'3': 3,
'4': 4,
'5': 5,
'6': 6,
'7': 7,
'8': 8,
'9': 9,
'A': 10,
'B': 11,
'C': 12,
'D': 13,
'E': 14,
'F': 15,
'G': 16,
'H': 17,
'J': 18,
'K': 19,
'L': 20,
'M': 21,
'N': 22,
'P': 23,
'Q': 24,
'R': 25,
'T': 26,
'U': 27,
'W': 28,
'X': 29,
'Y': 30
}
var usciStr = value.toUpperCase()
var reg = /^[A-Z0-9]{18}$/
if (!reg.exec(usciStr)) {
console.log('exec:')
return false
}
var weight = 0, sum = 0, index = 0, c, v, usciStrRange = usciStr.slice(0, 17)
for (index = 0; index < usciStrRange.length; index++) {
c = usciStrRange.charAt(index)
v = valueMap[c]
weight = parseInt(Math.pow(3, parseFloat(index))) % 31
sum += v * weight
}
var mod = sum % 31
var sign = 31 - mod
if (sign == 31) {
sign = 0
}
var signChar
for (var key in valueMap) {
signChar = key
if (valueMap[key] == sign) {
break
}
}
var lastStr = usciStr.slice(17, 18)
var signStr = signChar.toString()
return signStr == lastStr
}
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   983 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 21:35 · PVG 05:35 · LAX 14:35 · JFK 17:35
♥ Do have faith in what you're doing.