欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

项目小结:手机邮箱正则,URL各种判断返回页面,input输入框输入符合却获取不到问题

程序员文章站 2022-05-07 14:03:33
1.手机邮箱正则 近两年出来很多新号码,听说199什么的都有了- -导致以前的正则不能用了....这就很难过,总是过一段时间出一种新号码。因此,我决定使用返朴归真的手机正则。 手机正则:var reg=/^1[0-9]\d{9}$/; 邮箱正则:var mailReg = /^[a-zA-Z0-9_ ......

1.手机邮箱正则

近两年出来很多新号码,听说199什么的都有了- -导致以前的正则不能用了....这就很难过,总是过一段时间出一种新号码。因此,我决定使用返朴归真的手机正则。

手机正则:var reg=/^1[0-9]\d{9}$/;

邮箱正则:var mailreg = /^[a-za-z0-9_.-]+@[a-za-z0-9-]+(\.[a-za-z0-9-]+)*\.[a-za-z0-9]{2,6}$/;

使用方法:reg.test(e)

除此之外,作为一只程序狗,耿直的认为输入空格就是错误的,但是产品和测试都说万一用户就输入空格了,然后我报错了,但是肉眼看不到空格,用户找不到错误,体验就很差!哎,为了照顾那些手残用户,必须在正则判断前用 trim()对字段做处理trim()、trim()、trim()、trim()、trim()~~~~~~

2.input输入框输入符合却获取不到问题

当input输入框设置成type为number的时候,程序狗的思维是,这种输验证码之类的输入框不都应该输入数字吗?but,测试妹子就喜欢输入一堆符号+英文,别问我为什么能输入,(因为在不做限制的情况下,用中文输入法,然后按回车键就可以输入- -。),然后w3c制定的语法里,number输入框里有符号的时候,value 为空。emmm,这个也别问为什么,我tm也很郁闷。最后导致,测试妹子输入一堆符号后提交的时候提示,该字段不能为空,测试妹子就说了,我这明明不是空的,却提示为空,这不符合常理。好....我改.....

首先试用tel的type,因为这个type可以让安卓和ios都调用数字键盘,然后给input框都加上限制只能输入数字:

限制正整数:<input type="tel"  placeholder="请填写验证码" onkeyup="this.value=this.value.replace(/\d/g,'')" onafterpaste="this.value=this.value.replace(/\d/g,'')" />

限制首位不为0的正整数:<input type="tel"  placeholder="请填写手机号" onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\d/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(/\d/g,'')}" />

3.url各种判断返回页面

 案例:一个页面,在不同的情况下点返回上一页的时候进入不同的页面。

作为一个前端,我想到的最简单的办法就是在url里加不同的参数,然后获取字段的值去判断进入哪个页面。

方法一:正则分析法

复制代码代码如下:

function getquerystring(name) {
var reg = new regexp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]); return null;
}

调用方法:
alert(getquerystring("参数名1"));alert(getquerystring("参数名2"));
alert(getquerystring("参数名3"));

方法二

复制代码代码如下:

<script language="javascript">
function getrequest() {
var url = location.search; //获取url中"?"符后的字串
var therequest = new object();
if (url.indexof("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
therequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
return therequest;
}
</script>

调用方法:
<script language="javascript">
var request = new object();
request = getrequest();
var 参数1,参数2,参数3,参数n;
参数1 = request['参数1'];
参数2 = request['参数2'];
参数3 = request['参数3'];
参数n = request['参数n'];
</script>