前述:终于抽出时间,整理了一些编程中所需基础知识。
正则表达式:
一、中文判断:
var reg = /[\u4e00-\u9fa5]/;
console.log( reg.test('美好的一天!'));//true
二、密码验证:由大小写字母、数字、及 * & % $ # @ _ . 特殊符号组成的8-20位密码。
var pw = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!*&%$#@_.])[a-zA-Z\d!*&%$#@_.]{8,20}$/;
三、判断:手机号是否正确:1开头,第二位是3、4、5、7、8中任意一位,之后为0-9组成的9位数,共计11位数。
var reg = /^[1][3,4,5,7,8][0-9]{9}$/;
四、验证邮箱:(1)字母数字下划线组合开头,(2)@居中,(3)后加字母数字,(4)再加.英文点 ,(5)后跟2-4字母的组合
var emailreg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
五、验证数字
var numreg =/^(\-|\+)?\d+(\.\d+)?$/;
六、验证身份证号码:身份证号码15、18位数;当15位时全为数字,当18位时尾位数为校验位(数字 or 字母x、X)。
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
js中应用:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js基础-正则表达式 中文、数字、手机号、邮箱、密码</title>
</head>
<body>
<script type="text/javascript">
console.log("一、中文判断:");
var reg = /[\u4e00-\u9fa5]/;
console.log("中文:" + reg.test('美好的一天!'));//true
console.log("非中文:" + reg.test('info'));//false
console.log('含中文:' + reg.test('info—_/,.<>天气晴朗'));//true
console.log('二、密码验证:由大小写字母、数字、及 * & % $ # @ _ . 特殊符号组成的8-20位密码。');
var pw = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*?\d)(?=.*?[!*&%$#@_.])[a-zA-Z\d!*&%$#@_.]{8,20}$/;
console.log("数字:" + pw.test( "2345094920"));//false
console.log("小写字母::" + pw.test("adddjrle"));//false
console.log("大写字母:" + pw.test("YUREDGFHVM"));//false
console.log("大小写字母:" + pw.test("asOPfRweimTTY"));//false
console.log("大小字母及数字:" + pw.test("EKUIrd899fas7f90l"));//false
console.log("大小写字母、数字、不含指定特殊字符:" + pw.test("Res049_7d0w,<>sdf"));//false
console.log("大小写字母、数字、含指定特殊字符、但小于8位:" + pw.test("To@*_6f"));//false
console.log("大小写字母、数字、含指定特殊字符、但大20位:" + pw.test("Tgeto@*_6fU78%#dd936_lk"));//false
console.log("大小写字母、数字、含指定特殊字符、8-20位(符合密码要求):" + pw.test("Tgeto@*_6fU78%#"));//true
console.log('三、判断:手机号是否正确:1开头,第二位是3、4、5、7、8中任意一位,之后为0-9组成的9位数,共计11位数。');
var reg = /^[1][3,4,5,7,8][0-9]{9}$/;
console.log('第二位不合规:' + reg.test("19488477631"));//false
console.log('超过11位:' + reg.test("15249877667890"));//false
console.log('手机号码合规:' + reg.test("15209877876"));//true
console.log('四、验证邮箱:(1)字母数字下划线组合开头,(2)@居中,(3)后加字母数字,(4)再加.英文点 ,(5)后跟2-4字母的组合');
var emailreg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
console.log('纯数字:'+emailreg.test("2345533345566"));//false
console.log('数字带@.'+emailreg.test("3455@454.784"));//false
console.log('@后数字 尾部超4个字母:'+emailreg.test("dsf34@434.jjkket"));//false
console.log('@后带横杆:'+emailreg.test("df4455@df-h2.45d"));//false
console.log('@前带横杆(正确邮箱号码):'+emailreg.test("op3495-@df45.ght"));//true
console.log('结尾超4个字符'+emailreg.test("op3495_@df45.ghtlkhweertc"));//false
console.log('正确邮箱号码:'+emailreg.test("op3495_@df45.ght"));//true
console.log('五、验证数字');
var numreg =/^(\-|\+)?\d+(\.\d+)?$/;
var num1=2345;
var num2=-566;
var num3=23.5;
var num4=-89.5;
var num5=34.23;
var num6=-57.45;
var num7=45.342;
var num8=-1.345;
var num9=5.3478;
var num10=-9.4531;
var num11=6.23456;
var num12=-4.67523;
var num13=1236527384936274635.45232;
var num14=-1236527384936274635.67898;
var num15=1236527384936274635;
var num16=-1236527384936274635;
var num17=0;
console.log('正整数:'+numreg.test(num1));
console.log('负整数:'+numreg.test(num2));
console.log('正浮点数,1位小数:'+numreg.test(num3));
console.log('负浮点数,1位小数:'+numreg.test(num4));
console.log('正浮点数,2位小数:'+numreg.test(num5));
console.log('负浮点数,2位小数:'+numreg.test(num6));
console.log('正浮点数,3位小数:'+numreg.test(num7));
console.log('负浮点数,3位小数:'+numreg.test(num8));
console.log('正浮点数,4位小数:'+numreg.test(num9));
console.log('负浮点数,4位小数:'+numreg.test(num10));
console.log('正浮点数,5位小数:'+numreg.test(num11));
console.log('负浮点数,5位小数:'+numreg.test(num12));
console.log('正浮点超出位数:'+numreg.test(num13));
console.log('负浮点数超出位数:'+numreg.test(num14));
console.log('正整数:'+numreg.test(num15));
console.log('负整数:'+numreg.test(num16));
console.log('0:'+numreg.test(num17));
//以上都为true;
console.log('数字和字母:'+numreg.test("345623jf4sl"));//false
console.log('字母:'+numreg.test("dddg"));//false
console.log('中文:'+numreg.test("验证"));//false
console.log('中文和数字:'+numreg.test("数字7384"));//false
console.log('中文和数字:'+numreg.test("-=/.;,"));//false
console.log('六、验证身份证号码:身份证号码15、18位数;当15位时全为数字,当18位时尾位数为校验位(数字 or 字母x、X)。');
var useridreg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
console.log('尾部为K:' + useridreg.test('27349876567825361k'));//false
console.log('超出位数:' + useridreg.test('78765698293948572637'));//false
console.log('15位数:' + useridreg.test('123456789012345'));//true
console.log('18位数:' + useridreg.test('123456789012345678'));//true
console.log('18位数、X:' + useridreg.test('12345678901234567X'));//true
console.log('18位数、x:' + useridreg.test('12345678901234567x'));//true
//未完待续...
</script>
</body>
</html>