验证证件类型
var reg=/b/; //匹配字符串中的b字符 reg.test("abc"); //正则表达式的test用来检测字符串是否满足正则表达式的要求; //由于"abc"中存在b,所以是符合要求的,所以这段代码的返回值为:true const isTrue = reg.test("coke"); //由于"coke"中不存在b字符,所以不符合条件 -->isTrue:false var reg2=/abc/; reg2.test("adbcd"); //字符串中必然存在"abc"才符合要求,所以这段代码的返回值为false reg2.test("1abc"); //true reg2.test("abc123"); //true reg2.test("abcabc"); //true
var reg=/./; reg.test("a"); //true reg.test("."); //true reg.test("\r"); //false reg.test("1\r"); //存在一个1,不是换行符,所以结果为:true reg.test("\r\n"); //false //注意点:如果以后要匹配.字符,不要直接写. //为了匹配qq邮箱,写了 /qq.com/ 这是一个错误的写法: //=>/qq.com/不仅匹配:"qq.com"也匹配"qq1com" "qq@com" //解决方案:/qq\.com/ 或者 /qq[.]com/
\d 表示数字
var reg=/\d/; reg.test("1abc"); //由于存在一个数字,所以结果为true reg.test("abcde"); //由于不存在任何数字,所以结果为false //扩展: var _reg=/\d\d/; _reg.test("1b"); //不存在2个连续数字,所以结果为:false _reg.test("a12c"); //存在2个连续数字,结果为:true
\D 是\d的取反结果,表示不是数字
var reg=/\D/; reg.test("123"); //由于全是数字,所以结果为:false reg.test("123a"); //存在一个字母,所以结果为:true var reg2=/123\D5/; reg2.test("12345"); //false reg2.test("123b5"); //true
\w 匹配字母、数字、下划线 ,三者满足其一即可
var reg=/\w/; reg.test("123"); //存在数字,结果为:true reg.test("a"); //true reg.test("1"); //true reg.test("_"); //true reg.test("-"); //false reg.test("."); //false reg.test("1."); //true reg.test("_\r"); //true reg.test("\r"); //false
\W 是\w的取反
\s 表示一个空白字符(例如:\r \n \t 空格 。。。)
var reg=/\s/; reg.test("abc def"); //存在一个空白,结果为:true reg.test("abc\r123"); //存在一个\r,结果为:true reg.test("abc"); //false
\S 是\s的取反
var reg=/\S/; reg.test(" \r \n "); //全是空白字符,结果为false reg.test("123 abc"); //存在一个空白,结果为true var reg3=/\s\S/; reg3.test(" a"); //true reg3.test("a "); //存在空白字符和非空白字符,但不符合正则的顺序,false reg3.test("a b"); //true
\ 转义字符
var reg=/\./; //匹配.字符 var reg=/\//; //匹配一个正斜杠:/
var reg=/[1a2b3]/; //匹配这5个字符中的其中一个,只要满足其中,就是符合要求的 reg.test("a"); //结果为:true reg.test("3"); //结果为:true reg.test("cd56789"); //一个符合要求的字符都不存在,结果为:false reg.test("a55555"); //结果为:true var reg2=/[123][abc]/; reg2.test("2a"); //true reg2.test("3c"); //true reg2.test("defgh1c"); //存在符合条件的1c,结果为:true reg2.test("39"); //不满足 var reg2=/[0-9]/; //匹配数字0-9之间,任何一个数字 等价于:/\d/ var reg3=/[a-z]/; //匹配小写字母 var reg4=/[A-Z]/; //匹配大写字母 var reg5=/[a-zA-Z]/;//匹配所有字母 var reg6=/[A-Za-z]/;//.......... var reg10=/[0-9abc]/; reg10.test("3");//true reg10.test("five");//false reg10.test("banana");//true
[^]
var reg=/[^123]/; //不是1 并且 不是2 并且 不是3 reg.test("a"); //true reg.test("3"); //false reg.test("123"); //没有1,2,3以外的字符,结果为:false
var reg=/^abc/; //表示以abc开头 reg.test("123abc123"); //并不是以abc开头,结果为:false reg.test("abc123"); //以abc开头,结果为:true var reg=/abc$/; //表示以abc结尾 reg.test("123abc"); //结果为:true reg.test("abc123"); //结果为:false var reg=/^abc$/; //表示字符串abc reg.test("abc"); //结果为:true reg.test("123abc"); //结果为:false
var reg=/\d*/; reg.test("123"); //true reg.test("234"); //true reg.test(""); //true var reg3=/1\d*/; reg3.test("123"); //true reg3.test("a123") //true reg3.test("a2b"); //false
var reg=/abc{3}/; //表示匹配abccc reg.test("123abccc123"); //结果为:true
var reg=/abc|123/; //表示匹配abc或者123
var reg=/(\d{3-4})-(\d{7,8})/; var arr="021-33335555".match(/(\d{3,4})-(\d{7,8})/); //这个方法是查找一个或多个正则表达式的匹配。 arr[0] //全部 arr[1] //021 arr[2] //333355555 var reg=/(\d{3-4})-(\d{7,8})/; var str = "021-33335555"; str.replace(/(\d{3,4})-(\d{7,8})/,\'$1\'); //这个方法是在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。 //021 返回分组后\'$1\'对应的字符串替换正则匹配到的所有字符 str.replace(/(\d{3,4})-(\d{7,8})/,\'$2\'); //33335555 返回分组后\'$2\'对应的字符串替换正则匹配到的所有字符
var reg =/^1[3-9][0-9]\d{8}$/;
// 香港
protected function _checkIdCardHK($value)
{
$regx = "/[A-Z]{1,2}[0-9]{6}([0-9A])/";
if (preg_match($regx, $value)) {
return true;
}
return false;
}
// 澳门
protected function _checkIdCardMAC($value)
{
$regx = "/^[1|5|7][0-9]{6}\([0-9Aa]\)/";
if (preg_match($regx, $value)) {
return true;
}
return false;
}
// *
protected function _checkIdCardTW($value)
{
$regx = "/[A-Z][0-9]{9}/";
if (preg_match($regx, $value)) {
return true;
}
return false;
}
// 回乡证
protected function _checkReturnHome($value)
{
$reg = "/(H|M)(\d{10})$/";
if(preg_match($reg, $value))
{
return true;
}
return false;
}
// 台胞证
protected function _checkId*($value)
{
$reg = "/(^\d{8})$/";
if(preg_match($reg, $value))
{
return true;
}
return false;
}
// 护照
protected function _checkIdPassport($value)
{
$reg = "/^1[45][0-9]{7}|([P|p|S|s]\d{7})|([S|s|G|g]\d{8})|([Gg|Tt|Ss|Ll|Qq|Dd|Aa|Ff]\d{8})|([H|h|M|m]\d{8,10})$/";
if(preg_match($reg, $value))
{
return true;
}
return false;
}
js验证组织机构代码
1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成。
本体代码采用系列(即分区段)顺序编码方法。校验码按照以下公式计算:
C9=11-MOD(∑Ci(i=1→8)×Wi,11)
式中: MOD——代表求余函数;
i——代表代码字符从左至右位置序号;
Ci——代表第i位上的代码字符的值(具体代码字符见附表);
C9——代表校验码;
Wi——代表第i位上的加权因子;
当C9的值为10时,校验码应用大写的拉丁字母X表示;当C9的值为11时校验码用0表示。
2.代码的表示形式
为便于人工识别,应使用一个连字符“—”分隔本体代码与校验码。机读时,连字符省略。表示形式为:
xxxxxxxx—X
3.自定义区
为满足各系统管理上的特殊需要,规定本体代码PDY00001至PDY99999为自定义区,供各系统编制内部组织机构代码使用。自定义区内编制的组织机构代码不作为个系统之间信息交换的依据。
// 组织机构代码验证 true:真 false:假
function checkOrgCode(code) {
var ws = [3, 7, 9, 10, 5, 8, 4, 2];
var str = \'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\';
var reg = /^([0-9A-Z]){8}-[0-9|X]$/;// /^[A-Za-z0-9]{8}-[A-Za-z0-9]{1}$/
var sum = 0;
for (var i = 0; i < 8; i++){
sum += str.indexOf(code.charAt(i)) * ws[i];
}
var c9 = 11 - (sum % 11);
///c9 = c9 == 10 ? \'X\' : c9
if (c9 == 11) {
c9 = \'0\';
} else if (c9 == 10) {
c9 = \'X\' ;
} else {
c9 = c9+\'\';
}
alert(c9 +" -- "+ code.charAt(9));
if (!reg.test(code) || c9 !== code.charAt(9)) {
// alert("不是有效的组织机构代码!");
return false;
}else{
return true;
}
}
function CheckSocialCreditCode(Code) { var patrn = /^[0-9A-Z]+$/; //18位校验及大写校验 if ((Code.length != 18) || (patrn.test(Code) == false)) { return false; } else { var Ancode; //统一社会信用代码的每一个值 var Ancodevalue; //统一社会信用代码每一个值的权重 var total = 0; var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]; //加权因子 var str = \'0123456789ABCDEFGHJKLMNPQRTUWXY\'; //不用I、O、S、V、Z for (var i = 0; i < Code.length - 1; i++) { Ancode = Code.substring(i, i + 1); Ancodevalue = str.indexOf(Ancode); total = total + Ancodevalue * weightedfactors[i]; //权重与加权因子相乘之和 } var logiccheckcode = 31 - total % 31; if (logiccheckcode == 31) { logiccheckcode = 0; } var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y"; var Array_Str = Str.split(\',\'); logiccheckcode = Array_Str[logiccheckcode]; var checkcode = Code.substring(17, 18); if (logiccheckcode != checkcode) { return false; } return true; } }