前端之家收集整理的这篇文章主要介绍了
正则表达式检验,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- /**
- * 格式化数字
- * @param value 数字数值(必须参数)
- * @param decimal 小数点 (非必须参数:若没有,则默认为2)
- * @returns 数字
- */
- function formatNumber(value,decimal) {
- if(isNaN(value))
- return value;
- var re = /^[0-9]+[0-9]*]*$/;
- if (!re.test(decimal)){
- decimal = 2;
- }
- var n = value.toFixed(decimal);
- var a = n.split(".");
- if(a[0].length > 3){
- var str = "";
- for(var i = a[0].length-1;i>=0;i=i-3){
- if(i >= 3)
- str = ","+ a[0].substring(i-2,i+1) +str;
- else
- str = a[0].substring(i-2,i+1) +str;
- }
- if(decimal > 0)
- return str+"."+a[1];
- else
- return str;
- }else{
- return n;
- }
- }
-
- /**
- * 接收url传的参数
- * @param parName 参数名称(必须参数)
- * @returns 接收到参数
- */
- function getParameter(parName){
- var str = parName.toLowerCase() + "=";
- var gvalue = "";
- var HREF = location.href;
- var upperHREF = location.href.toLowerCase();
- if(upperHREF.indexOf(str)>0){
- gvalue = HREF.substring(upperHREF.indexOf(str) + str.length,upperHREF.length);
- if(gvalue.indexOf('&')>0) gvalue = gvalue.substring(0,gvalue.indexOf('&'));
- if(gvalue.indexOf("#")>0) gvalue = gvalue.split("#")[0];
- }
- return gvalue;
- }
-
- /**
- * 去掉左右空格
- * @param str 字符(必须参数)
- * @returns
- */
- function trim(str){
- return str.replace(/(^\s*)|(\s*$)/g,"");
- }
-
- /**
- *
- * @param value 日期(必须参数)
- * @param formatter 格式(非必须参数:默认为:yyyy-MM-dd)
- * 目前支持的格式有:①: yyyy-MM-dd; ②: yyyy/MM/dd; ③:yyyy.MM.dd; ④:yyyy-MM; ⑤: yyyy/MM; ⑥: yyyy.MM
- * @returns {String}
- */
- function formatDate(value,formatter) {
- if (value == null || value == '') {
- return '';
- }
- if(formatter == null || formatter == "undefined" || formatter == ""){
- formatter = "yyyy-MM-dd";
- }
- var year = value.getFullYear();
- var month = value.getMonth()+1;
- var day = value.getDate();
- if(month < 10)
- month = "0"+month;
- if(day < 10)
- day = "0" + day;
- if(formatter == "yyyy-MM-dd"){
- return year + "-" + month + "-" + day;
- }else if(formatter == "yyyy/MM/dd"){
- return year + "/" + month + "/" + day;
- }else if(formatter == "yyyy.MM.dd"){
- return year + "." + month + "." + day;
- }else if(formatter == "yyyy-MM"){
- return year + "-" + month;
- }else if(formatter == "yyyy/MM"){
- return year + "/" + month;
- }else if(formatter == "yyyy.MM"){
- return year + "." + month;
- }else
- return "";
- }
-
- /**
- * 格式化日期时间
- * @param value 日期时间(必须参数)
- * @param formatter 格式(非必须参数:默认为:yyyy-MM-dd HH:mm:ss)
- * 目前支持的格式有:①: yyyy-MM-dd HH:mm:ss; ②: yyyy/MM/dd HH:mm:ss; ③:yyyy.MM.dd HH:mm:ss; ④:yyyy-MM-dd hh:mm:ss; ⑤: yyyy/MM/dd hh:mm:ss; ⑥: yyyy.MM.dd hh:mm:ss
- * @returns
- */
- function formatDateTime(value,formatter) {
- alert(formatter);
- if (value == null || value == '') {
- return '';
- }
- if(formatter == null || formatter == "undefined" || formatter == ""){
- formatter = "yyyy-MM-dd HH:mm:ss";
- }
- var year = value.getFullYear();
- var month = value.getMonth()+1;
- var day = value.getDate();
- var hours = value.getHours();
- var minutes = value.getMinutes();
- var seconds = value.getSeconds();
- if((formatter == "yyyy-MM-dd hh:mm:ss" || formatter == "yyyy/MM/dd hh:mm:ss" || formatter == "yyyy.MM.dd hh:mm:ss") && hours >=13 && hours <=23){
- hours = hours-12;
- }
- if(month < 10)
- month = "0"+month;
- if(day < 10)
- day = "0" + day;
- if(hours < 10)
- hours = "0"+hours;
- if(minutes < 10)
- minutes = "0" + minutes;
- if(seconds < 10)
- seconds = "0"+seconds;
- if(formatter == "yyyy-MM-dd HH:mm:ss" || formatter == "yyyy-MM-dd hh:mm:ss"){
- return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
- }else if(formatter == "yyyy/MM/dd HH:mm:ss" || formatter == "yyyy/MM/dd hh:mm:ss"){
- return year + "/" + month + "/" + day + " " + hours + ":" + minutes + ":" + seconds;
- }else if(formatter == "yyyy.MM.dd HH:mm:ss" || formatter == "yyyy.MM.dd hh:mm:ss"){
- return year + "." + month + "." + day + " " + hours + ":" + minutes + ":" + seconds;
- }else
- return "";
- }
-
- /**
- * 将字符串转成日期
- * @param value 日期时间字符串(必须参数)
- * @param formatter 格式(非必须参数:默认为:yyyy-MM-dd)
- * 目前支持的格式有:①: yyyy-MM-dd; ②: yyyy/MM/dd; ③:yyyy.MM.dd; ④:yyyy-MM; ⑤: yyyy/MM; ⑥: yyyy.MM
- * @returns
- */
- function parseDate(value,formatter){
- if(value == null)
- return "";
- if(formatter == null || formatter == "undefined" || formatter == ""){
- formatter = "yyyy-MM-dd";
- }
- if(formatter == "yyyy-MM-dd"){
- var a = value.split("-");
- return new Date(a[0],parseInt(a[1],10)-1,a[2]);
- }else if(formatter == "yyyy/MM/dd"){
- var a = value.split("/");
- return new Date(a[0],a[2]);
- }else if(formatter == "yyyy.MM.dd"){
- var a = value.split(".");
- return new Date(a[0],a[2]);
- }else if(formatter == "yyyy-MM"){
- var a = value.split("-");
- return new Date(a[0],1);
- }else if(formatter == "yyyy/MM"){
- var a = value.split("/");
- return new Date(a[0],1);
- }else if(formatter == "yyyy.MM"){
- var a = value.split(".");
- return new Date(a[0],1);
- }else
- return "";
- }
-
- function formatFileSize(value){
- return (value/1024).toFixed(2)+"KB";
- }
-
- /**
- * ajax重装
- * @param url (必须参数)
- * @param data 传递参数(必须参数,没有请填写null)
- * @param success 成功操作(非必须参数)
- * @param async是否异步(true为异步,false为同步,默认为同步)
- */
- function ajax(url,data,success,async){
- if(url == null || url == "" || url == "undefined")
- return false;
- if(success == null || success == "undefined")
- success = function(data,textStatus){};
- if(async != false && async != true)
- async = false;
- $.ajax({
- url:url,data:data,type:"post",dataType:"json",async: false,success: function(result,textStatus){
- success(result,textStatus);
- }
- });
- }
-
- /**
- * 检测客户端浏览器是否安装flash控件
- */
- function flashChecker(){
- var hasFlash = false;
- if(document.all){
- try{
- hasFlash = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
- }catch(e){
- hasFlash = false;
- }
- }else{
- if(navigator.plugins && navigator.plugins.length > 0){
- var swf = navigator.plugins["Shockwave Flash"];
- if(swf){
- hasFlash = true;
- }
- }
- }
- return hasFlash;
- }
-
- /**
- * 判断表单时候被改变,必须和setDefaultFormData(formid)方法联用
- * @param formTarget (必须参数) 表单节点
- */
- function isFormChanged(formTarget){
- var isChanged = false;
- formTarget.find(":input").each(function(){
- var type = this.type;
- if(type == "select-one"){
- for (var j = 0; j < this.options.length; j++){
- if (this.options[j].selected != this.options[j].defaultSelected){
- isChanged = true;
- return false;
- }
- }
- }else if(type == "checkBox" || type == "radio"){
- if(this.checked != this.defaultChecked){
- isChanged = true;
- return false;
- }
- }else if(type == "textarea" || type == "text" || type == "hidden" || type == "image" || type == "password"){
- if(this.value != this.defaultValue){
- isChanged = true;
- return false;
- }
- }else{}
-
- });
- return isChanged;
- }
-
- /**
- * 为表单设置默认的值(默认将当前表单中各元素的值设为默认值,后常和isFormChanged(formid)联用)
- * @param formTarget (必须参数) 表单节点
- */
- function setDefaultFormData(formTarget){
- formTarget.find(":input").each(function(){
- var type = this.type;
- if(type == "select-one"){
- for (var j = 0; j < this.options.length; j++){
- this.options[j].defaultSelected = this.options[j].selected;
- }
- }else if(type == "checkBox" || type == "radio"){
- this.defaultChecked = this.checked;
- }else if(type == "textarea" || type == "text" || type == "hidden" || type == "image" || type == "password"){
- this.defaultValue = this.value;
- }
- });
- }
-
- /**
- * 将字符串转成json
- * @param str 字符串
- */
- function stringToJson(str){
- return eval('(' + str + ')');
- }
-
- /**
- * 将json转成字符串
- * @param json 对象
- */
- function jsonToString(json){
- return JSON.stringify(json);
- }
-
- //换行和换空格
- function to_text(str){
- if(str == null)
- return null;
- else
- return str.split("\r\n").join('<br>').split(" ").join('');
- }
- //小写数字转大写金额
- function atoc(numberValue){
- var numberValue=new String(Math.round(numberValue*100)); // 数字金额
- var chineseValue=""; // 转换后的汉字金额
- var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
- var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
- var len=numberValue.length; // numberValue 的字符串长度
- var Ch1; // 数字的汉语读法
- var Ch2; // 数字位的汉字读法
- var nZero=0; // 用来计算连续的零值的个数
- var String3; // 指定位置的数值
- if(len>15){
- alert("超出计算范围");
- return "";
- }
- if (numberValue==0){
- chineseValue = "零元整";
- return chineseValue;
- }
- String2 = String2.substr(String2.length-len,len); // 取出对应位数的STRING2的值
- for(var i=0; i<len; i++){
- String3 = parseInt(numberValue.substr(i,1),10); // 取出需转换的某一位的值
- if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) ){
- if ( String3 == 0 ){
- Ch1 = "";
- Ch2 = "";
- nZero = nZero + 1;
- }
- else if ( String3 != 0 && nZero != 0 ){
- Ch1 = "零" + String1.substr(String3,1);
- Ch2 = String2.substr(i,1);
- nZero = 0;
- }
- else{
- Ch1 = String1.substr(String3,1);
- nZero = 0;
- }
- }
- else{ // 该位是万亿,亿,万,元位等关键位
- if( String3 != 0 && nZero != 0 ){
- Ch1 = "零" + String1.substr(String3,1);
- nZero = 0;
- }
- else if ( String3 != 0 && nZero == 0 ){
- Ch1 = String1.substr(String3,1);
- nZero = 0;
- }
- else if( String3 == 0 && nZero >= 3 ){
- Ch1 = "";
- Ch2 = "";
- nZero = nZero + 1;
- }
- else{
- Ch1 = "";
- Ch2 = String2.substr(i,1);
- nZero = nZero + 1;
- }
- if( i == (len - 11) || i == (len - 3)){ // 如果该位是亿位或元位,则必须写上
- Ch2 = String2.substr(i,1);
- }
- }
- chineseValue = chineseValue + Ch1 + Ch2;
- }
- if ( String3 == 0 ){ // 最后一位(分)为0时,加上“整”
- chineseValue = chineseValue + "整";
- }
- return chineseValue;
- }
-
-
- /**字符串数字相加
- *
- * @param idstr id的字符串 用,隔开
- */
- function numAdd(idstr){
- var ids = idstr.split(",");
- var total = 0;
- for(var i = 0;i<ids.length;i++){
-
- total += Number($("#"+ids[i]).val());
- }
- return total;
- }
-
- //验证邮编 onchange="checkYb(this.id)" var reg = /^0?1[3|4|5|8][0-9]\d{8}$/; checkGdDh
- function checkYb(object){
- var yb = document.getElementById(object.id).value;
- var pattern =/^[0-9]{6}$/;
- if(yb!="")
- {
- if(!pattern.exec(yb))
- {
- $.messager.alert('警告','请输入正确的邮政编码!');
- object.value = "";
- }
- }
- }
-
- //验证以13,14,15,18开头的 /^0?1[3|4|5|8][0-9]\d{8}$/; 下面验证以1开头的11位数字
- function checkMbPhone(object){
- var sjhm = document.getElementById(object.id).value;
- var pattern =/^0?1[0-9]\d{9}$/;
- if(sjhm!="")
- {
- if(!pattern.exec(sjhm))
- {
- $.messager.alert('警告','请输入正确的手机号码!');
- object.value = "";
- }
- }
- }
-
- //电话号码验证 区号(3到4位)-电话号码(7到8位)(分机号(3位)或者以上)
- function checkGdDh(object){
- var GdDh = document.getElementById(object.id).value;
- var pattern = /^((0\d{2,3})-)(\d{7,8})(\((\d{3,})\))?$/;
- if(GdDh!="")
- {
- if(!pattern.exec(GdDh))
- {
- $.messager.alert('警告','请输入正确的电话号码!');
- object.value = "";
- }
- }
- }
- /**
- * 判断手机号码或固定电话号码(带区号或不带区号)是否符合要求
- * @param value 号码(必须参数)
- */
- function isPhone(value){
- try{
- var regBox = {
- regEmail : /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/,//邮箱
- regMobile : /^1[3|4|5|7|8][0-9]{9}$/,//手机,以1开头,第二位是3、4、5、7、8,后面是0-9的9位数字,合为11位手机号码正则验证
- regTel : /^0[\d]{2,3}-[\d]{7,8}$/,//固定电话,带区号带“-”的固话,以0开头,后跟2,3位数字,区号是3或4位,再加“-”,后面是7或8位的数字号码
- regTel2 : /^0[\d]{9,11}$/,//固定电话,带区号不带“-”的固话,以0开头,后跟2,3位数字,区号是3或4位,后面再跟7或8位的数字号码
- regNoTel : /^[\d]{7,8}$/ //固定电话,不带区号的固话,7或8位的数字号码
- };
- var mobile = regBox.regMobile.test(value);
- var tel = regBox.regTel.test(value);
- var tel2 = regBox.regTel2.test(value);
- var notel = regBox.regNoTel.test(value);
- if(mobile || tel || tel2 || notel)
- return true;
- else{
- alert("联系号码填写格式不正确,请重新填写!");
- return false;
- }
- }catch(e){
-
- }
- }