JS正则表达式大全(整理详细且实用)(11)


//obj:数据对象
//dispStr :失败提示内容显示字符串
function checkUrlValid( obj, dispStr)
{
if(obj == null)
{
alert("传入对象为空");
return false;
}
var str = obj.value;

var urlpatern0 = /^https?:\/\/.+$/i;
if(!urlpatern0.test(str))
{
alert(dispStr+"不合法:必须以'http:\/\/'或'https:\/\/'开头!");
obj.focus();
return false;
}

var urlpatern2= /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?.+$/i;
if(!urlpatern2.test(str))
{
alert(dispStr+"端口号必须为数字且应在1-65535之间!");
obj.focus();
return false;
}


var urlpatern1 =https://www.jb51.net/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;

if(!urlpatern1.test(str))
{
alert(dispStr+"不合法,请检查!");
obj.focus();
return false;
}

var s = "0";
var t =0;
var re = new RegExp(":\\d+","ig");
while((arr = re.exec(str))!=null)
{
s = str.substring(RegExp.index+1,RegExp.lastIndex);

if(s.substring(0,1)=="0")
{
alert(dispStr+"端口号不能以0开头!");
obj.focus();
return false;
}

t = parseInt(s);
if(t<1 || t >65535)
{
alert(dispStr+"端口号必须为数字且应在1-65535之间!");
obj.focus();
return false;
}
}
return true;
}


对url的校验,看上去有很多的代码,这是因为要给予出错提示, 否则只需var urlpatern1 =https://www.jb51.net/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i; 一句就可以校验出url合法性了


正则表达式在JavaScript应用

--------------------------------------------------------------
去掉字符串头尾多余的空格
/g是全文查找所有匹配

function String.prototype.Trim(){return this.replace(/(^\s*)|(\s*$)/g, "");}

function String.prototype.LTrim(){return this.replace(/(^\s*)/g, "");}

function String.prototype.RTrim(){return this.replace(/(\s*$)/g, "");}

--------------------------------------------------------------
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}

--------------------------------------------------------------
应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现,如下:

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
得用正则表达式从URL地址中提取文件名的javascript程序,如下结果为page1

s="https://www.jb51.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)

##利用正则表达式限制网页表单里的文本框输入内容:

--------------------------------------------------------------
用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,'))"

--------------------------------------------------------------
用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,'))"

--------------------------------------------------------------
用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'))"

--------------------------------------------------------------
用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,'))"
 

用正则表达式和javascript对表单进行全面验证 

使用时请将下面的javascript代码存到一个单一的js文件中。

1、表单要求
<form onSubmit="return validateForm(this)"></form>
将对表单中的所有以下类型的域依次验证,所有验证是去除了前导和后缀空格的,要注意是区分大小写的。

2、空值验证
表单中任意域加上emptyInfo属性将对此域是否为空进行验证(可以和最大长度验证\一般验证方式同时使用)。
无此属性视为此域允许空值。
如:<input type="text" emptyInfo="字段不能为空!">

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdwpxd.html