`
deer
  • 浏览: 85385 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

js字符串函数扩充

阅读更多
来源:http://www.phpweblog.net/kiyone/archive/2007/04/19/1135.aspx

Js字符串操作函数大全

/*
******************************************
                        字符串函数扩充                                
******************************************
*/

/*
===========================================
//去除左边的空格
===========================================

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


/*
===========================================
//去除右边的空格
===========================================
*/
String.prototype.Rtrim = function()
{
        return this.replace(/(\s*$)/g, "");
}



/*
===========================================
//去除前后空格
===========================================
*/
String.prototype.Trim = function()
{
        return this.replace(/(^\s*)|(\s*$)/g, "");
}

/*
===========================================
//得到左边的字符串
===========================================
*/
String.prototype.Left = function(len)
{

        if(isNaN(len)||len==null)
        {
                len = this.length;
        }
        else
        {
                if(parseInt(len)<0||parseInt(len)>this.length)
                {
                        len = this.length;
                }
        }
       
        return this.substr(0,len);
}


/*
===========================================
//得到右边的字符串
===========================================
*/
String.prototype.Right = function(len)
{

        if(isNaN(len)||len==null)
        {
                len = this.length;
        }
        else
        {
                if(parseInt(len)<0||parseInt(len)>this.length)
                {
                        len = this.length;
                }
        }
       
        return this.substring(this.length-len,this.length);
}


/*
===========================================
//得到中间的字符串,注意从0开始
===========================================
*/
String.prototype.Mid = function(start,len)
{
        return this.substr(start,len);
}


/*
===========================================
//在字符串里查找另一字符串:位置从0开始
===========================================
*/
String.prototype.InStr = function(str)
{

        if(str==null)
        {
                str = "";
        }
       
        return this.indexOf(str);
}

/*
===========================================
//在字符串里反向查找另一字符串:位置0开始
===========================================
*/
String.prototype.InStrRev = function(str)
{

        if(str==null)
        {
                str = "";
        }
       
        return this.lastIndexOf(str);
}



/*
===========================================
//计算字符串打印长度
===========================================
*/
String.prototype.LengthW = function()
{
        return this.replace(/[^\x00-\xff]/g,"**").length;
}

/*
===========================================
//是否是正确的IP地址
===========================================
*/
String.prototype.isIP = function()
{

        var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;

        if (reSpaceCheck.test(this))
        {
                this.match(reSpaceCheck);
                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;    
                }
                else
                {
                        return false;
                }
        }
        else
        {
                return false;
        }
  
}


/*
===========================================
//是否是正确的长日期
===========================================
*/
String.prototype.isLongDate = function()
{
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);
        if(r==null)
        {
                return false;
        }
        var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);

}

/*
===========================================
//是否是正确的短日期
===========================================
*/
String.prototype.isShortDate = function()
{
        var r = this.replace(/(^\s*)|(\s*$)/g, "").match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
        if(r==null)
        {
                return false;
        }
        var d = new Date(r[1], r[3]-1, r[4]);
        return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

/*
===========================================
//是否是正确的日期
===========================================
*/
String.prototype.isDate = function()
{
        return this.isLongDate()||this.isShortDate();
}

/*
===========================================
//是否是手机
===========================================
*/
String.prototype.isMobile = function()
{
        return /^0{0,1}13[0-9]{9}$/.test(this);
}

/*
===========================================
//是否是邮件
===========================================
*/
String.prototype.isEmail = function()
{
        return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);
}

/*
===========================================
//是否是邮编(中国)
===========================================
*/

String.prototype.isZipCode = function()
{
        return /^[\\d]{6}$/.test(this);
}

/*
===========================================
//是否是有汉字
===========================================
*/
String.prototype.existChinese = function()
{
        //[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號
        return /^[\x00-\xff]*$/.test(this);
}

/*
===========================================
//是否是合法的文件名/目录名
===========================================
*/
String.prototype.isFileName = function()
{
        return !/[\\\/\*\?\|:"<>]/g.test(this);
}

/*
===========================================
//是否是有效链接
===========================================
*/
String.prototype.isUrl = function()
{
        return /^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(this);
}


/*
===========================================
//是否是有效的身份证(中国)
===========================================
*/
String.prototype.isIDCard = function()
{
        var iSum=0;
        var info="";
        var sId = this;

        var aCity={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};

        if(!/^\d{17}(\d|x)$/i.test(sId))
        {
                return false;
        }
        sId=sId.replace(/x$/i,"a");
        //非法地区
        if(aCity[parseInt(sId.substr(0,2))]==null)
        {
                return false;
        }

        var sBirthday=sId.substr(6,4)+"-"+Number(sId.substr(10,2))+"-"+Number(sId.substr(12,2));

        var d=new Date(sBirthday.replace(/-/g,"/"))
       
        //非法生日
        if(sBirthday!=(d.getFullYear()+"-"+ (d.getMonth()+1) + "-" + d.getDate()))
        {
                return false;
        }
        for(var i = 17;i>=0;i--)
        {
                iSum += (Math.pow(2,i) % 11) * parseInt(sId.charAt(17 - i),11);
        }

        if(iSum%11!=1)
        {
                return false;
        }
        return true;

}

/*
===========================================
//是否是有效的电话号码(中国)
===========================================
*/
String.prototype.isPhoneCall = function()
{
        return /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(this);
}


/*
===========================================
//是否是数字
===========================================
*/
String.prototype.isNumeric = function(flag)
{
        //验证是否是数字
        if(isNaN(this))
        {

                return false;
        }

        switch(flag)
        {

                case null:        //数字
                case "":
                        return true;
                case "+":        //正数
                        return                /(^\+?|^\d?)\d*\.?\d+$/.test(this);
                case "-":        //负数
                        return                /^-\d*\.?\d+$/.test(this);
                case "i":        //整数
                        return                /(^-?|^\+?|\d)\d+$/.test(this);
                case "+i":        //正整数
                        return                /(^\d+$)|(^\+?\d+$)/.test(this);                       
                case "-i":        //负整数
                        return                /^[-]\d+$/.test(this);
                case "f":        //浮点数
                        return                /(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);
                case "+f":        //正浮点数
                        return                /(^\+?|^\d?)\d*\.\d+$/.test(this);                       
                case "-f":        //负浮点数
                        return                /^[-]\d*\.\d$/.test(this);               
                default:        //缺省
                        return true;                       
        }
}

/*
===========================================
//是否是颜色(#FFFFFF形式)
===========================================
*/
String.prototype.IsColor = function()
{
        var temp        = this;
        if (temp=="") return true;
        if (temp.length!=7) return false;
        return (temp.search(/\#[a-fA-F0-9]{6}/) != -1);
}

/*
===========================================
//转换成全角
===========================================
*/
String.prototype.toCase = function()
{
        var tmp = "";
        for(var i=0;i<this.length;i++)
        {
                if(this.charCodeAt(i)>0&&this.charCodeAt(i)<255)
                {
                        tmp += String.fromCharCode(this.charCodeAt(i)+65248);
                }
                else
                {
                        tmp += String.fromCharCode(this.charCodeAt(i));
                }
        }
        return tmp
}

/*
===========================================
//对字符串进行Html编码
===========================================
*/
String.prototype.toHtmlEncode = function()
{
        var str = this;

        str=str.replace(/&/g,"&amp;");
        str=str.replace(/</g,"&lt;");
        str=str.replace(/>/g,"&gt;");
        str=str.replace(/\'/g,"&apos;");
        str=str.replace(/\"/g,"&quot;");
        str=str.replace(/\n/g,"<br>");
        str=str.replace(/\ /g,"&nbsp;");
        str=str.replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;");

        return str;
}

/*
===========================================
//转换成日期
===========================================
*/
String.prototype.toDate = function()
{
        try
        {
                return new Date(this.replace(/-/g, "\/"));
        }
        catch(e)
        {
                return null;
        }
}







1.Asc(x),Chr(x):转换字符,字符码

2。Filter:搜寻字符串数组中的特定字符串

格式:v=filter(x,s[,include[,compare]])

实例:

Dim x()={"kjwang","wangkj","peter"}

Dim v

v=filter(x,"kj") '结果v(0)="kjwang",v(1)="wangkj"

v=filter(x,"kj",false) '结果v(0)="peter"

v=filter(x,"kj",true,vbTextCompare) '不分大小写搜寻

3.InStr:寻找字符串位置(InstrRev:倒过来寻找字符串)

格式:

v=instr(x,y) '从x字符串第1个字符起找出y字符串出现的位置

v=instr(n,x,y) '从x字符串第n个字符起找出y字符串出现的位置

格式:

v=InstrRev(x,s[,n[,Compare]])

4。Join:将字符串连接

格式:v=join(x[,d])’d为分隔字符

5。Len(x):计算字符串x的长度

格式:v=len(x)

6.Left(x,n):返回字符串x左边n个字符(对应Right(x,n))

7。Mid:读取字符串x中间的字符

格式:v=mid(x,n,m)

8。LTrim(x),RTim(x),Trim(x)去空白字符

9.Replace:字符串取代

格式:v=Replace(x,s,r)

实例:x="i saw a saw a saw"

v=replace(x,"saw","so") 'v="i so a so a so"

10.Split:字符串分割

格式:v=split(s[,d])

实例:v=split("vb.net,iis6.0,asp.net",",")

'结果v(0)="vb.net",v(1)="iis6.0",v(2)="asp.net"

11.StrReverse:反转字符串

实例:v=strreverse("kjwang") 'v="gnawjk"

12.UCase(x),LCase(x):变换英文字母的大小写

实例:x="hello,VB中文!"

v=UCase(x) 'v="HELLO,VB中文!"
1.取出日期时间

-1)DateValue(x),TimeValue(x)

格式:v=DateValue(x) :取出的“日期”部分

   v=timevalue(x) '类上

-2)Year(x),Month(x),Day(x)

格式:v=Year(x)

   v=Month(x)

   v=Day(x)

   Hour(x),Minute(x),Second(x):取出时,分,秒

-3)DateSerial(Y,M,D):合并年、月、日成为日期

实例:Dim v

v=DateSerial(1996,10,5) 'v=1996/10/5

   TimeSerial(H,M,S):合并时、分、秒成为时间

2.Now:读取系统日期时间

格式:v=now

3.Timer:从凌晨12:00:00AM起所经过的秒数

格式:v=timer

4.DatePart(p,x):取出年、月、日等各部分的数值

实例:Dim X=#2/10/1996 16:45:30#

v=DatePart("yyyy",X) 'v=1996年

v=DatePart("m",X) 'v=2月

v=DatePart("d",X) 'v=10日

v=DatePart("h",X) 'v=16时

v=DatePart("n",X) 'v=45分

v=DatePart("s",X) 'v=30秒

v=DatePart("q",X) 'v=1季(第一季,春季)

v=DatePart("y",X) 'v=41天(1996年的第41天)

v=DatePart("ww",X) 'v=6周(1996年的第6周)

v=DatePart("w",X) 'v=7(第6周的第7天,即星期六)

5。DateAdd(p,n,x):加减若干时间后的新日期时间

格式:v=DateAdd(p,n,x) 'p值同上如:"yyyy"、"m"等

实例:Dim x=#1/31/1996 16:45:30#

v=dateadd("yyyy",-3,x) '减3年,v=1993/1/31 16:45:30

6.DateDiff(p,x1,x2):计算两日期时间的差值 'p值同上

实例:dim x1=#12/31/1996 16:45:30#

x2=#2/10/1997 9:30:50#

v=datediff("yyyy",x1,x2) 'v=1年

7。FormatDateTime:日期时间的格式化

格式:v=formatdateyime(x[,日期格式])

日期格式值:DateFormat.GeneralDate 、 DateFormat.LongDate、

DateFotmat.ShortDate、DateFormat.LongTime、DateFormat.ShortTime

8.MonthName:返回月份名称

实例:v=monthname(5) 'v="五月"

9.WeekDayName:返回星期名称 ’用法同8.


分享到:
评论

相关推荐

    js prototype截取字符串函数

    prototype它是用Javascript写好的一些API,包括对Javascript中的类如String,Array等进行的扩充,把JS文件嵌入后直接用就行了. 代码如下:String.prototype.strLen = function() { var len = 0; for (var i = 0; i ...

    JSValid:一种在 JavaScript 中进行验证的函数式方法

    JSValid 是一种在 JavaScript 中进行验证的函数式方法。 它提供了一种表达值约束的自然方式,以及一种执行它们的简单机制。 JSValid 指定一种特殊函数的签名,称为验证器。 验证器接受要验证的值subject作为单个...

    JavaScript权威指南(第6版)中文版pdf+源代码

     7.12 作为数组的字符串163  第8章 函数165  8.1 函数定义166  8.2 函数调用168  8.3 函数的实参和形参173  8.4 作为值的函数178  8.5 作为命名空间的函数181  8.6 闭包182  8.7 函数属性、方法和构造函数...

    JavaScript权威指南(第6版)(附源码)

    7.12 作为数组的字符串 第8章 函数 8.1 函数定义 8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和...

    JavaScript 权威指南(第四版).pdf

     7.12 作为数组的字符串163  第8章 函数165  8.1 函数定义166  8.2 函数调用168  8.3 函数的实参和形参173  8.4 作为值的函数178  8.5 作为命名空间的函数181  8.6 闭包182  8.7 函数属性、方法和构造函数...

    JavaScript权威指南(第6版)

    7.12 作为数组的字符串 第8章 函数 8.1 函数定义 8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型...

    JavaScript权威指南(第6版)(中文版)

    7.12 作为数组的字符串 第8章 函数 8.1 函数定义 8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型...

    JavaScript权威指南(第6版)中文文字版

    7.12 作为数组的字符串 163 第8章 函数 165 8.1 函数定义 166 8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 ...

    JavaScript权威指南(第六版) 清晰-完整

    7.12 作为数组的字符串 第8章 函数 8.1 函数定义 8.2 函数调用 8.3 函数的实参和形参 8.4 作为值的函数 8.5 作为命名空间的函数 8.6 闭包 8.7 函数属性、方法和构造函数 8.8 函数式编程 第9章 类和模块 9.1 类和原型...

    《JavaScript语言精粹[修订版]》高清版_2012.09_【蝴蝶书】_172页完整版

    字符串 语句 表达式 字面量 函数 第3 章 对象 对象字面量 检索 更新 引用 原型 反射 枚举 删除 减少全局变量污染 第4 章 函数 函数对象 函数字面量 调用 参数 返回 异常 扩充类型的功能 递归 作用域 闭包 回调 模块 ...

    JavaScript权威指南(第6版) 中文版

    7.12 作为数组的字符串 163 第8章 函数 165 8.1 函数定义 166 8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 ...

    PHP和MySQL WEB开发(第4版)

    4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_...

    JavaScript权威指南(第6版)

    7.12 作为数组的字符串 163 第8章 函数 165 8.1 函数定义 166 8.2 函数调用 168 8.3 函数的实参和形参 173 8.4 作为值的函数 178 8.5 作为命名空间的函数 181 8.6 闭包 182 8.7 函数属性、方法和构造函数 188 8.8 ...

    PHP和MySQL Web开发第4版pdf以及源码

    4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_...

    PHP和MySQL Web开发第4版

    4.5 使用字符串函数匹配和替换子字符串 4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr() 4.5.2 查找子字符串的位置:strpos()、strrpos() 4.5.3 替换子字符串:str_replace()、substr_...

    JSP程序设计教程(第2章) JSP开发基础.ppt

    JavaScript 的变量可以是数字、字符串、布尔值、数组、对象等。 JavaScript 的应用 JavaScript 的应用非常广泛,例如可以用来制作网页特效、验证用户输入、实现动态交互等。JavaScript 可以与 HTML、CSS 结合使用...

    php网络开发完全手册

    7.3.4 字符串单词数的计算函数—— 7.3.4 str_word_count 107 7.3.5 字符串查找操作——strstr 108 7.3.6 获得字符串的长度——strlen 108 7.3.7 获得字符串的子串——substr 109 7.4 正则表达式简介 109 7.5 正则...

Global site tag (gtag.js) - Google Analytics