源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[JavaScript] js常用自定义公共函数汇总

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2014-1-15 15:42:17 | 显示全部楼层 |阅读模式
本文整理了一些js常用自定义公共函数如检查是否是日期格式、判断输入的字符是否为中文、判断是否为空、固定电话、手机号码等等 复制代码 代码如下:
String.prototype.trim = function(){
return this.replace(/(^\s*)|(\s*$)/g, "");
}

//检查是否是日期格式
function isDate(datestr){
var result = datestr.match(/((^((1[8-9]\d{2})|([2-9]\d{3}))(-)(10|12|0?[13578])(-)(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(11|0?[469])(-)(30|[12][0-9]|0?[1-9])$)|(^((1[8-9]\d{2})|([2-9]\d{3}))(-)(0?2)(-)(2[0-8]|1[0-9]|0?[1-9])$)|(^([2468][048]00)(-)(0?2)(-)(29)$)|(^([3579][26]00)(-)(0?2)(-)(29)$)|(^([1][89][0][48])(-)(0?2)(-)(29)$)|(^([2-9][0-9][0][48])(-)(0?2)(-)(29)$)|(^([1][89][2468][048])(-)(0?2)(-)(29)$)|(^([2-9][0-9][2468][048])(-)(0?2)(-)(29)$)|(^([1][89][13579][26])(-)(0?2)(-)(29)$)|(^([2-9][0-9][13579][26])(-)(0?2)(-)(29)$))/);
if(result==null){
return "no";
}
return "yes";
}

//此方法以上面效果一致
function isDate2(datestr) {
var result = datestr.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if (result == null)
return "no";
var d = new Date(result[1], result[3] - 1, result[4]);
if((d.getFullYear() == result[1] && (d.getMonth() + 1) == result[3] && d.getDate() == result[4])){
return "yes";
}
return "no";
}

//判断输入的字符是否为中文
function IsChinese(str){
if(str.length!=0){
reg=/^[\u0391-\uFFE5]+$/;
if(!reg.test(str)){
// alert("对不起,您输入的字符串类型格式不正确!");
return "no";
}
}
return "yes";
}


//判断是否为空
function isEmpty(str){
if(str==null||typeof str=="undefined"||str.trim()==""){
return true;
}else{
return false;
}
}

//固定电话
function testTelephone(phone){
var phone_reg = new RegExp(/^([+]{0,1}\d{3,4}|\d{3,4}-)?\d{7,8}$/);
if(!phone_reg.test(phone)){
return "no";
}
return "yes";
}
//折扣
function isDiscount(discount){
var phone_reg = new RegExp(/^(0([\.]\d{1,2})|1|1.00|1.0)$/);
if(!phone_reg.test(discount)){
return "no";
}
return "yes";
}
//手机号码
function testMobile(mobile){
var mobile_reg = new RegExp(/^0{0,1}1[0-9]{10}$/);
if(!mobile_reg.test(mobile)){
return "no";
}
return "yes";
}
//QQ号码从10000开始
function testQQ(qq){
var qq_reg = new RegExp(/^[1-9][0-9]{4,}$/);
if(!qq_reg.test(qq)){
return "no";
}
return "yes";
}
//电子邮件
function testEmail(email){
var email_reg = new RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$/);
if(!email_reg.test(email)){
return "no";
}
return "yes";
}

//不带符号的正整数
function testPlusDigit(digit){
var plusDigit_reg = new RegExp(/^\d+$/);
if(!plusDigit_reg.test(digit)){
return "no";
}
return "yes";
}

//DOUBLE价格
function testPriceFormat(str){
var priceFormatReg = new RegExp(/^\d+(.\d{1,2})?$/);
if(!priceFormatReg.test(str)){
return "no";
}
return "yes";
}

//身份证
function testIDCard(str){
var IDCardReg = new RegExp(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/);
if(!IDCardReg.test(str)){
return "no";
}
return "yes";
}

//2012-06-19日期格式
function testDate(str){
var dateReg = new RegExp(/(^\d{4}-[0,1][0-9]-[0-3][0-9]$)/);
if(!dateReg.test(str)){
return "no";
}
return "yes";
}



//浮点数精确运算(加法)
function accAdd(arg1,arg2){
var r1,r2,m,n;
try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
m=Math.pow(10,Math.max(r1,r2));
n=(r1>=r2)?r1:r2;
return ((arg1*m+arg2*m)/m).toFixed(n);
}
Number.prototype.add = function (arg){
return accAdd(arg,this);
}

//浮点数精确运算(减法)
function accSub(arg1,arg2){
return accAdd(arg1,-arg2);
}
Number.prototype.subtract = function (arg){
return accSub(this,arg);
}

//浮点数精确运算(乘法)
function accMul(arg1,arg2)
{
var m=0,s1=arg1.toString(),s2=arg2.toString();
try{m+=s1.split(".")[1].length}catch(e){}
try{m+=s2.split(".")[1].length}catch(e){}
return Number(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m)
}
Number.prototype.mul = function (arg){
return accMul(arg, this);
}

//浮点数精确运算(除法)
function accDiv(arg1,arg2){
var t1=0,t2=0,r1,r2;
try{t1=arg1.toString().split(".")[1].length}catch(e){}
try{t2=arg2.toString().split(".")[1].length}catch(e){}
with(Math){
r1=Number(arg1.toString().replace(".",""))
r2=Number(arg2.toString().replace(".",""))
return (r1/r2)*pow(10,t2-t1);
}
}
Number.prototype.div = function (arg){
return accDiv(this, arg);
}

//限制输入数字
function isNumber(e) {
if ($.browser.msie) {
if ( ((event.keyCode > 47) && (event.keyCode < 58)) ||
(event.keyCode == 8) ) {
return true;
} else {
return false;
}
} else {
if ( ((e.which > 47) && (e.which < 58)) ||
(e.which == 8) ) {
return true;
} else {
return false;
}
}
}


//字符串长度截取
function cutstr(str, len) {
var temp;
var icount = 0;
var patrn = /[^\x00-\xff]/;
var strre = "";
for (var i = 0; i < str.length; i++) {
if (icount < len - 1) {
temp = str.substr(i, 1);
if (patrn.exec(temp) == null) {
icount = icount + 1;
} else {
icount = icount + 2;
}
strre += temp;
} else {
break
}
}
return strre + "...";
}

//获取域名主机
function getHost(url) {
var host = "null";
if (typeof url == "undefined" || null == url) {
url = window.location.href;
}
var regex = /^\w+\:\/\/([^\/]*).*/;
var match = url.match(regex);
if (typeof match != "undefined" && null != match) {
host = match[1];
}
return host;
}

//判断某个值是否在所在范围
//rang=1 表示正整数[0,2147483647] 2表示float[0,3.4028235E38]
//return= 'empty' 表示输入为空,
function isRang(str,rang){
if(typeof str == "number"){
var num = Number(str);
//判断是否在正整数范围
if( rang == 1){
if(testPlusDigit(num)=="yes"){
if(num>=0&&num<=2147483647){
return "is_int";
}else{
return "is_not_int_rang";
}
}else{
return "is_not_int";
}
}else if(rang == 2){
if(testPriceFormat(num)=="yes"){
if(num>=0&&num<=3.4028235E38){
return "is_float";
}else{
return "is_not_float_rang";
}
}else{
return "is_not_float";
}
}else{
return "rang_is_not_right";
}
}else{
return "is_not_number";
}
}
回复

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-10-25 08:14:15 | 显示全部楼层
很不错的源码论坛
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2022-11-21 19:25:59 | 显示全部楼层
搞个免费的用用
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

107

积分

注册会员

Rank: 2

积分
107
发表于 2023-1-2 15:05:07 | 显示全部楼层
呵呵呵呵呵呵
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

303

积分

中级会员

Rank: 3Rank: 3

积分
303
发表于 2023-7-12 07:49:23 | 显示全部楼层
激动人心,无法言表!
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

380

积分

中级会员

Rank: 3Rank: 3

积分
380
发表于 2023-8-31 01:25:13 | 显示全部楼层
dfdsafdsfdsfdsf
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

115

积分

注册会员

Rank: 2

积分
115
发表于 2023-10-14 04:07:56 | 显示全部楼层
借款金额看了就立刻
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2023-10-24 05:02:55 | 显示全部楼层
终于找到了,我擦
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-11-4 02:09:25 | 显示全部楼层
快更新啊,我擦
回复 支持 反对

使用道具 举报

12

主题

2万

回帖

431

积分

中级会员

Rank: 3Rank: 3

积分
431
发表于 2023-11-7 05:52:10 | 显示全部楼层
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-4 02:48 , Processed in 0.104516 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表