有时这样写:
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
有时又这样写:
var tmp = /cityid=[^&]*/;
其实alert(ret)的结果就是下边这样的,根据个人喜好随便写咯。
至于用什么方法来使用正则,方法很多的:
test方法用来测试字符串是否匹配给出的匹配模式,返回布尔值
exec方法返回包含第一个匹配的的数组或null
match方法返回包含所有匹配子字符串的数组
以下是一些用到的js的验证,手机号码需要优化
//判断是否为手机号或者固话
function istel(tel) {
var regtel = /^[\d]{11}$|^[\d]{8}$/;
if (!(regtel.test(tel))) {
return false;
}
else {
return true;
}
}
//检测是否为数字
function isNumber(num) {
var regnum = /^[\d]+$/;
if (!(regnum.test(num))) {
return false;
}
else {
return true;
}
}
//判断日期时间格式是否正确,包含了闰年、大小月等,个位数时直接输入就行了,不用手动补0
function isdatetime(time) {
var regdealtime = /^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))\s+([0-1]?[0-9]|2[0-3]|[0-9]):([0-5][0-9]|[0-9]):([0-5][0-9])$/;
if (!(regdealtime.test(time))) {
return false;
}
else {
return true;
}
}
//判断日期格式是否正确
function isdate(time) {
//var regdealtime = /20\d{2}-\d{1,2}-\d{1,2}/;
var regdealtime = /^((((19|20)\d{2})-(0?[13-9]|1[012])-(0?[1-9]|[12]\d|30))|(((19|20)\d{2})-(0?[13578]|1[02])-31)|(((19|20)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))-0?2-29))$/;
if (!(regdealtime.test(time))) {
return false;
}
else {
return true;
}
}
//判断日期是否超过当前日期
function dateIsFuture(date) {
var now = new Date();
var dealdate = new Date(Date.parse(date.replace('-', '/').replace('-', '/')));
if (dealdate > now) {
return true;
}
else {
return false;
}
}
//给定日期是否为当前日期的30天前
function isOff30(date) {
var now = new Date();
var dealdate = new Date(Date.parse(date.replace('-', '/').replace('-', '/')));
if (Math.round((now - dealdate) / 86400000) > 30) {//30前的日期
return true;
}
else {
return false;
}
}
//给定日期是否为当前日期的7天前
function isOff7(date) {
var now = new Date();
var dealdate = new Date(Date.parse(date.replace('-', '/').replace('-', '/')));
if (Math.round((now - dealdate) / 86400000) > 7) {//7前的日期
return true;
}
else {
return false;
}
}