下面是源代码文件:chars_exercise.js
/*****1.给一个连字符串例如:get-element-by-id转化成驼峰形式******/
export default (str)=>{
var reg = /-\w/g;
return str.replace(reg,function($0){
return $0.slice(1).toUpperCase();
})
}
/*****2.匹配二进制数字******/
export default (num)=>{
var reg = /^[01]+$/g;
return reg.test(num);
}
/*****3.非零的十进制数字 (有至少一位数字, 但是不能以0开头)******/
export default (num)=>{
var reg = /^[1-9]\d{1,}$/g;
return reg.test(num);
}
/*****4.匹配一年中的12个月******/
export default (num)=>{
var reg = /^(0?[1-9]|1[0-2])$/g;
return reg.test(num);
}
/*****5.匹配qq号5~13位数,不能以0开头,只能是数字******/
export default (num)=>{
var reg = /^[1-9]\d{5,13}$/g;
return reg.test(num);
}
/*****6.匹配用尖括号括起来的以a开头的字符串******/
export default (num)=>{
var reg = /<a[^>]+>/g;
return num.match(reg)[0];
}
/*****7.分割数字每三个以一个逗号划分******/
export default (str)=>{
var reg = /(\d)(?=(\d{3})+$)/g;//(\d{3})+$ 的意思是连续匹配 3 个数字,且最后一次匹配以 3 个数字结尾。
return str.replace(reg,'$1,');
}
下面是chars_exercise.test.js:
import charEx from '../src/chars_exercise';
test('1.get-element-by-id转化成驼峰形式',()=>{
expect(charEx('get-element-by-id')).toBe('getElementById');
})
test('2.匹配二进制数字',()=>{
expect(charEx("1010101")).toBe(true);
})
test('3.非零的十进制数字 (有至少一位数字, 但是不能以0开头',()=>{
expect(charEx("1001212")).toBe(true);
})
test('4.匹配一年中的12个月',()=>{
expect(charEx("11")).toBe(true);
})
test('5.匹配qq号5~13位数,不能以0开头,只能是数字',()=>{
expect(charEx("563796220")).toBe(true);
})
test('6.匹配用尖括号括起来的以a开头的字符串',()=>{
expect(charEx("<a herf='www.baidu.com'>")).toBe("<a herf='www.baidu.com'>");
})
test('7.分割数字每三个以一个逗号划分',()=>{
expect(charEx("12345678901")).toBe('12,345,678,901');
})
使用jest测试工具进行测试,详细教程请见使用Jest测试JavaScript