Heim > Artikel > Web-Frontend > Beispiele für häufig verwendete reguläre Ausdrücke in Javascript_Javascript-Kenntnissen
Der Herausgeber hat zuvor viele Beispiele für reguläre Ausdrücke zusammengestellt, die häufig in JavaScript verwendet werden. Jetzt werde ich sie mit Ihnen teilen.
function strlen(str)
{
var i;
var len;
len = 0;
for (i=0;i
if (str.charCodeAt(i)>255) len+=2; else len++;
}
return len;
}
/*
* 判断是否为数字,是则返回true,否则返回false
*/
function f_check_number(obj)
{
if (/^\d+$/.test(obj.value))
{
return true;
}
else
{
f_alert(obj,"请输入数字");
return false;
}
}
/*
* 判断是否为自然数,是则返回true,否则返回false
*/
function f_check_naturalnumber(obj)
{
var s = obj.value;
if (/^[0-9]+$/.test( s ) && (s > 0))
{
return true;
}
else
{
f_alert(obj,"请输入自然数");
return false;
}
}
/*
* 判断是否为整数,是则返回true,否则返回false
*/
function f_check_integer(obj)
{
if (/^(\+|-)?\d+$/.test( obj.value ))
{
return true;
}
else
{
f_alert(obj,"请输入整数");
return false;
}
}
/*
* 判断是否为实数,是则返回true,否则返回false
*/
function f_check_float(obj)
{
if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value ))
{
return true;
}
else
{
f_alert(obj,"请输入实数");
return false;
}
}
/*
* 校验数字的长度和精度
*/
function f_check_double(obj){
var numReg;
var value = obj.value;
var strValueTemp, strInt, strDec;
var dtype = obj.eos_datatype;
var pos_dtype = dtype.substring(dtype.indexOf("(") 1,dtype.indexOf(")")).split(",");
var len = pos_dtype[0], prec = pos_dtype[1];
versuchen
{
numReg =/[-]/;
strValueTemp = value.replace(numReg, "");
numReg =/[ ]/;
strValueTemp = strValueTemp.replace(numReg, "");
//整数
if(prec==0){
numReg =/[.]/;
if(numReg.test(value) == true){
f_alert(obj, "输入必须为整数类型");
return false;
} if(strValueTemp.length >( len - prec)){
f_alert(obj, „整数位不能超过“ (len – prec) „位“);
return false;
}
}else{
strInt = strValueTemp.substr( 0, strValueTemp.indexOf(".") );
if(strInt.length >( len - prec)){
f_alert(obj, "整数位不能超过" (len - prec) "位");
return false;
}
strDec = strValueTemp.substr( (strValueTemp.indexOf(".") 1, strValueTemp.length );
if(strDec.length > prec){
f_alert(obj, "小数位不能超过" prec "位");
return false;
}
}
return true;
}catch(e){
alert("in f_check_double = " + e);
return false;
}
}
/*
* 校验数字的最小最大值
* 返回bool
*/
function f_check_interval(obj)
{ var value = parseFloat(obj.value);
var dtype = obj.eos_datatype; var pos_dtype = dtype.substring(dtype. indexOf("(") 1,dtype.indexOf(")).split(",");
var minLimit = pos_dtype[0];
var minVal = parseFloat(pos_dtype[0]);
var maxVal = parseFloat(pos_dtype[1]);
if(isNaN(value))
{ f_alert( obj, "Der Wert muss eine Zahl sein "); kleiner als „minVal); 🎜> (Wert <= maxVal && Wert >= minVal)) return false;
/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false
*/
function f_check_zh(obj){
if (/^[\u4e00-\u9fa5]+$/.test(obj.value)) {
return true;
}
f_alert(obj,"请输入汉字");
return false;
}
/*
* 判断是否为小写英文字母,是则返回true,否则返回false
*/
function f_check_lowercase(obj)
{
if (/^[a-z]+$/.test( obj.value ))
{
return true;
}
f_alert(obj,"请输入小写英文字母");
return false;
}
/*
* 判断是否为大写英文字母,是则返回true,否则返回false
*/
function f_check_uppercase(obj)
{
if (/^[A-Z]+$/.test( obj.value ))
{
return true;
}
f_alert(obj,"请输入大写英文字母");
return false;
}
/*
* 判断是否为英文字母,是则返回true,否则返回false
*/
function f_check_letter(obj)
{
if (/^[A-Za-z]+$/.test( obj.value ))
{
return true;
}
f_alert(obj,"请输入英文字母");
return false;
}
/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/
function f_check_ZhOrNumOrLett(obj){ //判断是否是汉字、字母、数字组成
var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";
var re = new RegExp(regu);
if (re.test( obj.value )) {
return true;
}
f_alert(obj,"请输入汉字、字母或数字");
return false;
}
/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/
function f_check_IP(obj)
{
var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; //匹配IP地址的正则表达式
if(re.test( obj.value ))
{
if( RegExp.$1<=255 && RegExp.$1>=0
&&RegExp.$2<=255 && RegExp.$2>=0
&&RegExp.$3<=255 && RegExp.$3>=0
&&RegExp.$4<=255 && RegExp.$4>=0 )
{
return true;
}
}
f_alert(obj,"请输入合法的计算机IP地址");
return false;
}
/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function f_check_port(obj)
{
if(!f_check_number(obj))
return false;
if(obj.value < 65536)
return true;
f_alert(obj,"请输入合法的计算机IP地址端口号");
return false;
}
/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function f_check_URL(obj){
var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;
if(myReg.test( obj.value )) return true;
f_alert(obj,"请输入合法的网页地址");
return false;
}
/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
function f_check_email(obj){
var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
if(myReg.test( obj.value )) return true;
f_alert(obj,"请输入合法的电子邮件地址");
return false;
}
/*
要求:一、移动电话号码为11或12位,如果为12位,那么第一位为0
二、11位移动电话号码的第一位和第二位为"13"
三、12位移动电话号码的第二位和第三位为"13"
用途:检查输入手机号码是否正确
输入:
s:字符串
返回:
如果通过验证返回true,否则返回false
*/
function f_check_mobile(obj){
var regu =/(^[1][3][0-9]{9}$)|(^0[1][3][0-9]{9}$)/;
var re = new RegExp(regu);
if (re.test( obj.value )) {
return true;
}
f_alert(obj,"请输入正确的手机号码");
return false;
}
/*
要求:一、电话号码由数字、"("、")"和"-"构成
二、电话号码为3到8位
三、如果电话号码中包含有区号,那么区号为三位或四位
四、区号用"("、")"或"-"和其他部分隔开
用途:检查输入的电话号码格式是否正确
输入:
strPhone:字符串
返回:
如果通过验证返回true,否则返回false
*/
function f_check_phone(obj)
{
var regu =/(^([0][1-9]{2,3}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0][1-9]{2,3}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/;
var re = new RegExp(regu);
if (re.test( obj.value )) {
return true;
}
f_alert(obj,"请输入正确的电话号码");
return false;
}
/* 判断是否为邮政编码 */
function f_check_zipcode(obj)
{
if(!f_check_number(obj))
return false;
if(obj.value.length!=6)
{
f_alert(obj,"邮政编码长度必须是6位");
return false;
}
return true;
}
/*
用户ID,可以为数字、字母、下划线的组合,
第一个字符不能为数字,且总长度不能超过20。
*/
function f_check_userID(obj)
{
var userID = obj.value;
if(userID.length > 20)
{
f_alert(obj,"ID长度不能大于20");
return false;
}
if(!isNaN(userID.charAt(0)))
{
f_alert(obj,"ID第一个字符不能为数字");
return false;
}
if(!/^\w{1,20}$/.test(userID))
{
f_alert(obj,"ID只能由数字、字母、下划线组合而成");
return false;
}
return true;
}
/*
功能:验证身份证号码是否有效
提示信息:未输入或输入身份证号不正确!
使用:f_check_IDno(obj)
返回:bool
*/
function f_check_IDno(obj)
{ :"Liaoning",22:"Jilin",23:"Heilongjiang",31:"Shanghai",32:"Jiangsu",33:"Zhejiang",34:" Anhui",35:"Fujian",36:" Jiangxi",37:"Shandong",41:"Henan",42:"Hubei",43:"Hunan",44:"Guangdong",45:"Guangxi" ,46:"Hainan",50:"Chongqing",51:"Sichuan",52:"Guizhou",53:"Yunnan",54:"Tibet",61:"Shaanxi",62:"Gansu",63 :"Qinghai",64:"Ningxia",65:"Xinjiang",71:"Taiwan",81:"Hong Kong",82:"Macau",91:"Abroad"}
var iSum = 0;
var info = ""
var strIDno = obj.value;
var idCardLength =
if(!/^d{17}(d|x) $/i.test(strIDno)&&!/^d {15}$/i.test(strIDno)) //At entspricht der Zahl 10 und wird daher in a umgewandelt > strIDno = strIDno.replace(/x$/i,"a"); 0,2))]==null)
CardLength==18)
d = new Date(sBirthday.replace(/- /g,"/")) If(sBirthday!=(d.getFullYear() "-" (d.getMonth() 1) "-" d.getDate ()))
for(var i = 17; i>=0;i --)
iSum = (Math.pow(2,i) % 11) * parseInt(strIDno.charAt(17 - i),11);
if(iSum !=1)
else if (idCardLength==15)
{
sBirthday = "19" + strIDno.substr(6,2) + "-" + Number(strIDno.substr(8,2)) + "-" + Number(strIDno.substr(10,2));
var d = new Date(sBirthday.replace(/-/g,"/"))
var dd = d.getFullYear().toString() + "-" + (d.getMonth()+1) + "-" + d.getDate();
if(sBirthday != dd)
{
f_alert(obj,"非法生日");
return false;
}
}
return true;
}
/*
* 判断字符串是否符合指定的正则表达式
*/
function f_check_formatStr(obj)
{
var str = obj.value;
var dtype = obj.eos_datatype;
var regu = dtype.substring(dtype.indexOf("(")+1,dtype.indexOf(")")); //指定的正则表达式
var re = new RegExp(regu);
if(re.test(str))
return true;
f_alert(obj , "不符合指定的正则表达式要求");
return false;
}
/*
功能:判断是否为日期(格式:yyyy年MM月dd日,yyyy-MM-dd,yyyy/MM/dd,yyyyMMdd)
提示信息:未输入或输入的日期格式错误!
使用:f_check_date(obj)
返回:bool
*/
function f_check_date(obj)
{ var date = Trim(obj.value);
var dtype = obj.eos_datatype;
var format = dtype.substring(dtype.indexOf(" (") 1,dtype.indexOf(")")); //Datumsformat
var Jahr, Monat, Tag, DatumPat, MatchArray
if(/^(y{4})( -|/ )(M{1,2})2(d{1,2})$/.test(format))
datePat = /^(d{4})(-|/)(d{ 1,2 })2(d{1,2})$/;
else if(/^(y{4})(Jahr)(M{1,2})(Monat)(d{1, 2}) (day)$/.test(format))
datePat = /^(d{4})year(d{1,2})month(d{1,2})day$/
else if(format=="yyyyMMdd")
datePat = /^(d{4})(d{2})(d{2})$/;
else
{ > f_alert(obj, „Datumsformat ist falsch“); 🎜 > f_alert(obj, „Die Datumslänge ist falsch, oder da sind nicht-numerische Symbole im Datum"); {1,2})2(d{1,2}) $/.test(format)) day = matchArray[4]; 3];
}
if (Monat < 1 || Monat > 12)
{
f_alert(obj," Der Monat sollte eine Ganzzahl von 1 bis 12 sein);
return false ;
🎜> if (day < 1 || day > 31)
{ f_alert(obj, "Die Anzahl der Tage in jedem Monat sollte eine Ganzzahl von 1 bis 31 sein);
gibt false zurück; return false;
if (month==2)
{
var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));
if (day>29)
{
f_alert(obj,"2月最多有29天");
return false;
}
if ((day==29) && (!isleap))
{
f_alert(obj,"闰年2月才有29天");
return false;
}
}
return true;
}
/*
功能:校验的格式为yyyy年MM月dd日HH时mm分ss秒,yyyy-MM-dd HH:mm:ss,yyyy/MM/dd HH:mm:ss,yyyyMMddHHmmss
提示信息:未输入或输入的时间格式错误
使用:f_check_time(obj)
返回:bool
*/
function f_check_time(obj)
{ var time = Trim(obj.value); var dtype = obj.eos_datatype;
var format = dtype.substring(dtype.indexOf(" (") 1,dtype .indexOf(")")); //Datumsformat
var datePat,matchArray,year,month,day,hour,minute,second; -|/)(M{1,2})2(d{1,2}) (HH:mm:ss)$/.test(format))
datePat = /^( d{4})( -|/)(d{1,2})2(d{1,2}) (d{1,2}):(d{1,2}):(d{1, 2})$/;
else if(/^(y{4})(Jahr)(M{1,2})(Monat)(d{1,2})(Tag)(HH Stunde mm Minute ss Sekunden)$/. test(format))
datePat = /^(d{4})year(d{1,2})month(d{1,2})day(d{1,2} ) Stunden (d{1 ,2}) Minuten (d{1,2}) Sekunden$/;
d{2})(d{2})(d{2})(d{2})(d{2})$ /; .test(format))
matchArray[7];
} else
Jahr = matchArray[1];
Tag = matchArray[3];
Minute = matchArray [5];
second = matchArray[6]; Ganzzahl");
; Die Anzahl der Tage sollte eine ganze Zahl von 1 bis 31 sein;
return false;
}
if ((month==4 || month==6 || month==9 || month==11) && day==31)
{
f_alert(obj,"该月不存在31号");
return false;
}
if (month==2)
{
var isleap=(year % 4==0 && (year % 100 !=0 || year % 400==0));
if (day>29)
{
f_alert(obj,"2月最多有29天");
return false;
}
if ((day==29) && (!isleap))
{
f_alert(obj,"闰年2月才有29天");
return false;
}
}
if(hour<0 || hour>23)
{
f_alert(obj,"小时应该是0到23的整数");
return false;
}
if(minute<0 || minute>59)
{
f_alert(obj,"分应该是0到59的整数");
return false;
}
if(second<0 || second>59)
{
f_alert(obj,"秒应该是0到59的整数");
return false;
}
return true;
}
/*判断当前对象是否可见*/
function isVisible(obj){
var visAtt,disAtt;
try{
disAtt=obj.style.display;
visAtt=obj.style.visibility;
}catch(e){}
if(disAtt=="none" || visAtt=="hidden")
return false;
return true;
}
/*判断当前对象及其父对象是否可见*/
function checkPrVis(obj){
var pr=obj.parentNode;
do{
if(pr == undefined || pr == "undefined") return true;
else{
if(!isVisible(pr)) return false;
}
}while(pr=pr.parentNode);
return true;
}
/* 弹出警告对话框,用户点确定后将光标置于出错文本框上, 并且将原来输入内容选中。*/
function f_alert(obj,alertInfo)
{
var caption = obj.getAttribute("eos_displayname");
if(caption == null)
caption = "";
alert(caption + ":" + alertInfo + "!");
obj.select();
if(isVisible(obj) && checkPrVis(obj))
obj.focus();
}
/**
* 检测字符串是否为空
*/
function isnull(str)
{
var i;
if(str.length == 0)
return true;
for (i=0;i
if (str.charAt(i)!=' ')
return false;
}
return true;
}
/**
* 检测指定文本框输入是否合法。
* 如果用户输入的内容有错,则弹出提示对话框,
* 同时将焦点置于该文本框上,并且该文本框前面
* 会出现一个警告图标(输入正确后会自动去掉)。
*/
function checkInput(object)
{ var image;
var length; ") length = object.eos_maxsize;
else length = 0;
if (object.eos_isnull=="true" && isnull(object.value)) return true;
/* Längenkorrekturtest */
if(length != 0 && strlen(object.value) > ; parseInt(length)) {
f_alert(object, „maximale Länge überschritten“ length);
>
var dtype = object.eos_datatype ;
var objName = object. Name;
-1)
dtype = dtype.substring(0,dtype.indexOf("("));
//Validieren basierend auf dem Validierungstyp des Seitenelements
try{
if(eval ("f_check_" dtype "(object)") != true)
Halbe Teile sind gleich und gleichzeitig. Es gibt Formulardomänen, die am Ende von „min“ und „max“ enden. daher wird
als Abfrage nach Intervall betrachtet. Das heißt, der Wert des Formularfelds, das mit „min“ endet, muss kleiner oder gleich dem Wert des Formularfelds sein, das mit „max“ endet. */
if(objName.substring((objName.length-3),objName.length)=="min")
{
var objMaxName = objName.substring(0, (objName.length-3)) + "max";
if(document.getElementById(objMaxName) != undefined && document.getElementById(objMaxName) != "undefined" )
{
if(checkIntervalObjs(object, document.getElementById(objMaxName)) != true)
return false;
}
}
}
}
return true;
}
/* 检测表单中所有输入项的正确性,一般用于表单的onsubmit事件 */
function checkForm(myform)
{
var i;
for (i=0;i
/* 非自定义属性的元素不予理睬 */
if (myform.elements[i].eos_displayname + "" == "undefined") continue;
/* 非空校验 */
if (myform.elements[i].eos_isnull=="false" && isnull(myform.elements[i].value)){
f_alert(myform.elements[i],"不能为空");
return false;
}
/* 数据类型校验 */
if (checkInput(myform.elements[i])==false)
return false;
}
return true;
}
/**
* 校验两个表单域数据的大小,目前只允许比较日期和数字。
* @param obj1 小值表单域
* @param obj2 大值表单域
*/
function checkIntervalObjs(obj1, obj2)
{ var caption1 = obj1.getAttribute("eos_displayname");
var caption2 = obj2.getAttribute("eos_displayname"); .value);
var val2 = parseFloat(obj2.value);
// Elemente mit nicht benutzerdefinierten Attributen werden ignoriert
if (obj1.eos_displayname "" == "undefiniert" | | obj2.eos_displayname "" == "undefiniert") {
= = true){
var dtype = obj1.eos_datatype;
var format = dtype.substring(dtype.indexOf("(") 1,dtype.indexOf ("")); //Datumsformat
val1 = getDateByFormat(obj1.value, format);