另外试试这个:/^[a-zA-Z]+[\d\w]$/如果是定长的都是8位的话,这里就可能是一种单向加密的方式,而就是说,只存在从明文向密文进行的一个加密过程,不存在一个由密文向明文的解密过程,这种单向加密又称非可逆性加密,多用于校检式对比校验显然不须要知道明文就可以了,所以采用的是单向加密,比较代表性的就是MD5,SHA-1等算法
因为明文一般是4-16位,而加密后的密文只有8位,若是一个双向加密,显然明文长度大于密文长度,这里其实是说,明文的容量大于密文的容量,不管是那种加密算法,都会造成大量的"碰撞"!而一个双向加密算法的好坏,碰撞机率是一个非常重要的因素的!显然,若是只有8位时,只能说是一个不太好的校验方式算法,也就是单向算法的所谓的碰撞就是指的有两个不同的明文会得到相同的密文,那么这两个明文就发生了碰撞这个机率越大,则算法的可行性越差!
而若是单向校验,也就是单向加密,这里虽然碰撞机率大,但可以用程序去做一下控制的!比如你输入三次密码如果校验不成功,则将帐户进行封冻等都是较好的手段!而双向加密,别人可以直接进行算法测试,不会依赖于程序,则很容易破解的这与密码设计的初衷是背离的
如果是8位定长,也就是说不管你是多少位密码,这极可能是MD5加密或是MD5的前身MD4与MD2加密也可能是程序设计者自己设计的算法!但绝对是一个单向加密的!
MD5你可能见过16位的和32位或者更多的其实你看一下其中的具体实现就知道了,他是四组值进行运算的,最终这四组若是b+c(第二组与第三组组合)就是MD5的16位算法若是a+b+c+d四组全组合时就是32位的算法但如果系统对于密码强度大小不是很大时,为了省却计算机的运算时间,完全可以只有用其中四组中的一组,也就是所能看到的8位的这种算法是MD5,但只取的是其中的一组值的而MD2与MD4恰恰就是与此类似的!因为安全性不强的缘故,现在已经很少或是没有地方使用了!至少现在的系统中我还没有看到过
手机号的正则表达式为“^1(3|4|5|7|8)\d{9}$”,解释如下
“^1”表示以1开头,“(3|4|5|7|8)”表示第二位可能是3/4/5/7/8等的任意一个,在加上后面的\d表示数字[0-9]的9位,总共加起来11位结束。
代码如下:
function checkPhone(){
var phone = documentgetElementById('phone')value;
if(!(/^1(3|4|5|7|8)\d{9}$/test(phone))){
alert("手机号码有误,请重新输入");
return false;
}
}
js正则表达式常用元素符如下:
扩展资料:
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串 *** 作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
参考资料:
官网正则表达式API-Creating a regular expression
菜鸟教程-JavaScript 正则表达式
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)