javascript 自定义常用方法第1/2页

比如说页面的字符处理,js的正则表达式验证等等。下面我就将我自己浅薄的开发经验综合网上的庞杂资源稍稍综合整理一下,省得自己以后要用到时再搜索了。这个系列我会将平时常用的函数归纳整理起来,全当作是抛砖引玉吧。
Code is cheap.看代码:
一、常见的字符串处理函数

// 返回字符的长度,一个中文算2个
String.prototype.ChineseLength = function() {
return this .replace( / [ ^ \x00 - \xff] / g, " ** " ).length;
}

// 去掉字符串两端的空白字符
String.prototype.Trim = function() {
return this .replace( / ( ^ \s + ) | (\s + $) / g, "" );
}

// 去掉字符左端的的空白字符
String.prototype.LeftTrim = function() {
return this .replace( / ( ^ [\s] * ) / g, "" );
}

// 去掉字符右端的空白字符
String.prototype.RightTrim = function() {
return this .replace( / ([\s] * $) / g, "" );
}

/* 忽略大小写比较字符串是否相等
注:不忽略大小写比较用 == 号 */
String.prototype.IgnoreCaseEquals = function(str) {
return this .toLowerCase() == str.toLowerCase();
}

/* 不忽略大小写比较字符串是否相等 */
String.prototype.Equals = function(str) {
return ( this == str);
}

/* 比较字符串,根据结果返回 -1, 0
返回值 相同:0 不相同:-1
*/
String.prototype.CompareTo = function(str) {
if ( this == str) {
return 0 ;
} else
return - 1 ;
}

// 字符串替换
String.prototype.Replace = function(oldValue, newValue) {
var reg = new RegExp(oldValue, " g " );
return this .replace(reg, newValue);
}

// 检查是否以特定的字符串结束
String.prototype.EndsWith = function(str) {
return this .substr( this .length - str.length) == str;
}

// 判断字符串是否以指定的字符串开始
String.prototype.StartsWith = function(str) {
return this .substr( 0 , str.length) == str;
}

// 从左边截取n个字符
String.prototype.LeftSlice = function(n) {
return this .substr( 0 , n);
}

// 从右边截取n个字符
String.prototype.RightSlice = function(n) {
return this .substring( this .length - n);
}

// 统计指定字符出现的次数
String.prototype.Occurs = function(ch) {
// var re = eval("/[^"+ch+"]/g");
// return this.replace(re, "").length;
return this .split(ch).length - 1 ;
}

/* 构造特定样式的字符串,用 <span></span> 包含 */
String.prototype.Style = function(style) {
return " <span style=\ "" .concat(style, " \ " > " , this , " </span> " );
}

// 构造类似StringBuilder的函数(连接多个字符串时用到,很方便)
function StringBuilder(str) {
this .tempArr = new Array();
}
StringBuilder.prototype.Append = function(value) {
this .tempArr.push(value);
return this ;
}
StringBuilder.prototype.Clear = function() {
this .tempArr.length = 0 ;
}
StringBuilder.prototype.toString = function() {
return this .tempArr.join( '' );
}

// 字符串常见方法及扩展
function test() {
var testStr = " This is a test string " ;
var testStr2 = " 字符串 " ;
// alert(testStr.Trim());
// alert(testStr.LeftTrim());
// alert(testStr.RightTrim());
// alert(testStr2.ChineseLength());
// alert(testStr2.CompareTo(testStr));
// alert(testStr2.StartsWith("字符串"));
// document.write(testStr2.Style("color:red;width:100px"));
// alert(testStr2.LeftSlice(2));
// alert(testStr.RightSlice(7));
// alert(testStr.Occurs("s"));
/* StringBuilder测试 */
// var testStr3 = new StringBuilder("");
// testStr3.Append("test3\r\n");
// testStr3.Append("test3test3\r\n");
// testStr3.Append("test3");
// alert(testStr3.toString());
// testStr3.Clear();
// alert(testStr3.toString());
}

二、常用的正则表达式

/* -----------------------下面的函数还是涉及到了一些字符串的处理,但是当作正则表达式的一部分看起来更合理----------------------------- */
// 检查字符串是否由数字组成
String.prototype.IsDigit = function () {
var str = this .Trim();
return (str.replace( / \d / g, "" ).length == 0 );
}

// 校验字符串是否为浮点型
String.prototype.IsFloat = function () {
var str = this .Trim();
// 如果为空,则不通过校验
if (str == "" )
return false ;
// 如果是整数,则校验整数的有效性
if (str.indexOf( " . " ) == - 1 ) {
return str.IsDigit();
}
else {
if ( / ^(\-?)(\d+)(.{1})(\d+)$ / g.test(str))
return true ;
else
return false ;
}
}

// 检验是否是负整数
function isNegativeInteger(str) {
// 如果为空,则不通过校验
if (str == "" )
return false ;
if (str.IsDigit()) {
if (parseInt(str, 10 ) < 0 )
return true ;
else
return false ;
}
else
return false ;
}

// 检验是否是负浮点数数
function isNegativeFloat(str) {
// 如果为空,则不通过校验
if (str == "" )
return false ;
if (str.IsFloat()) {
if (parseFloat(str, 10 ) < 0 )
return true ;
else
return false ;
}
else
return false ;
}

// 是否是由字母组成的字符串
function isCharacter(str) {
return ( / ^[A-Za-z]+$ / .test(str));
}

// 是否是字母、数字组成的字符串
function isNumberCharacter(str) {
return ( / ^[A-Za-z0-9]+$ / .test(str));
}

// 是否是email
function isEmail(str) {
return ( / (\S)+[@]{1}(\S)+[.]{1}(\w)+ / .test(str))
}

// 是否是url(评注:网上流传的版本功能很有限,下面这个基本可以满足需求)
function isUrl(str) {
return ( / ([a-zA-z]+:\ / \ / )?[^s]* / .test(str));
}

// 是否是ip地址
function isIpAddress(str) {
return / (\d+)\.(\d+)\.(\d+)\.(\d+) / .test(str);
}

// 是否是汉字组成的字符串
function isChinese(str) {
return ( / ^[\u4e00-\u9fa5]+$ / .test(str));
}

// 是否是双字节字符(包括汉字在内)
function isUnicode(str) {
return ( / ^[\x00-\xff]+$ / .test(str));
}

// 是否是电话号码
function isTelephone(str) {
// 兼容格式: 国家代码(2到3位)-区号(2到3位)(-)?电话号码(7到8位)-分机号(3位)
return ( / ^(([0\+]\d{2,3}-)?(0\d{2,3}))?[-]?(\d{7,8})(-(\d{3,}))?$ / .test(str));
}

// 是否是手机号码
function isMobilePhone(str) {
return ( / ^((\(\d{3}\))|(\d{3}\-))?1[3,5]\d{9}$ / .test(str));
}

// 是否是QQ号码(腾讯QQ号从10000开始)
function isQQNumber(str) {
return ( / ^[1-9][0-9]{4,}$ / .test(str));
}

// 是否是国内的邮政编码(中国邮政编码为6位数字)
function isMailCode(str) {
return ( / \d{6} / .test(str));
}

// 是否是国内的身份证号码
function isIdNumber(str) {
return ( / \d{15}|\d{18} / .test(str));
}

关于正则表达式,网上还有很多的有深度的文章,我这里就拷贝几段常用的代码了,其实学懂了基本的正则知识后普通的验证不过是小菜一碟,不再赘述。

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异

    在您开始本文的阅读前,我强烈建议您可以先读一读此篇:http://w3help.org/zh-cn/causes/SD9004.            HTMLCollection 接口定义 interface HTMLCollection{      readonly attribute unsigned long   length;      Node               item(in unsigned long index);      Node               na

  • javascript常用方法汇总

    本章没有深奥的讲解js一些底层原理,比如this指针.作用域.原型啦,涉及的都是一些有利于平时开发时简化代码,提高执行效率,或者说可以当做一种经验方法来使用,篇幅都不长,小步快跑的让你阅读完整篇文章,体验编程的快乐.  获取两个区间之内随机数 复制代码 代码如下: function getRandomNum(Min, Max){ // 获取两个区间之内随机数     // @逆火狂飙  提出有可能第一个参数大于第二个参数,所以增加一下判断更可靠     if (Min > Max)     Ma

  • javascript中创建对象的三种常用方法

    创建对象的三种方法 方法一: 复制代码 代码如下: var obj = new Object(); obj.属性 = 值; //继续添加其它属性 obj.方法 = function(参数) { //功能代码 } //继续添加其它方法 方法二: 复制代码 代码如下: var obj = { 属性:值 , //继续添加其它属性 , 方法: function(参数) { 功能代码 } , //继续添加其它方法 } 以上两种方法都是直接创建一个对象 方法三: 复制代码 代码如下: //先定义对象的模型,

  • Javascript select下拉框操作常用方法

    复制代码 代码如下: function AddDropDownList(id,fatherCtl) { if(!document.getElementById(id)) { var ddl = document.createElement('select'); ddl.setAttribute("id",id); if(fatherCtl&&document.getElementById(fatherCtl)) document.getElementById(fathe

  • javascript常用方法总结

    1.JavaScript:写入 HTML 输出 复制代码 代码如下: document.write("<h1>This is a heading</h1>"); document.write("<p>This is a paragraph</p>"); 2.JavaScript:对事件作出反应 复制代码 代码如下: <button type="button" onclick="ale

  • javascript 常用方法总结

    1.replace() 例: <script type="text/javascript"> var str="这个是text,下面还有一个text,这个text与那个text不相同"; document.write(str.replace(/text/g,"test"));//这个是把所有的text转换成test var str1="这个是Text,下面还有一个Text,这个Text与那个Text不相同"; do

  • jquery和javascript的区别(常用方法比较)

    jquery 就对javascript的一个扩展,封装,就是让javascript更好用,更简单.人家怎么说的来着,jquery就是要用更少的代码,漂亮的完成更多的功能.JavaScript 与JQuery 常用方法比较 1.加载DOM区别 JavaScript: window.onload function first(){ alert('first'); } function second(){ alert('second'); } window.onload = first; window

  • javascript 自定义常用方法第1/2页

    比如说页面的字符处理,js的正则表达式验证等等.下面我就将我自己浅薄的开发经验综合网上的庞杂资源稍稍综合整理一下,省得自己以后要用到时再搜索了.这个系列我会将平时常用的函数归纳整理起来,全当作是抛砖引玉吧. Code is cheap.看代码: 一.常见的字符串处理函数 // 返回字符的长度,一个中文算2个 String.prototype.ChineseLength = function() { return this .replace( / [ ^ \x00 - \xff] / g, " *

  • JavaScript自定义事件介绍

    很多DOM对象都有原生的事件支持,向div就有click.mouseover等事件,事件机制可以为类的设计带来很大的灵活性,相信.net程序员深有体会.随着web技术发展,使用JavaScript自定义对象愈发频繁,让自己创建的对象也有事件机制,通过事件对外通信,能够极大提高开发效率. 简单的事件需求 事件并不是可有可无,在某些需求下是必需的.以一个很简单的需求为例,在web开发中Dialog很常见,每个Dialog都有一个关闭按钮,按钮对应Dialog的关闭方法,代码看起来大概是这样 复制代码

  • javascript自定义右键弹出菜单实现方法

    本文实例讲述了javascript自定义右键弹出菜单实现方法.分享给大家供大家参考.具体实现方法如下: <head runat="server"> <title>无标题页</title> <script type="text/javascript"> var oPopup = window.createPopup(); function PopMenu(id) { var oPopBody = oPopup.docum

  • JavaScript数组常用方法解析及数组扁平化

    目录 前言 一.常用数组操作方法 push末尾追加元素 pop删除数组末尾元素 sort排序 shift数组开头添加元素 && unshift数组开头删除元素 数组合并concat indexOf查找元素 && includes查找元素是否存在 reverse反转数组 数组切割成字符串join slice操作数组,替换,删除,新增 every校验数组所有元素 some 测试数组中是不是至少有1个元素通过了被提供的函数测试.返回值是布尔值 深层次递归数组flat map遍历数

  • JavaScript自定义函数实现查找两个字符串最长公共子串的方法

    本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法.分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= "" ,L1=s1.length,L2=s2.length; if (L1>L2){ var s3=s1;s1=s2,s2=s3,L1=s2.length;} for ( var j=L1;j> 0 ;j--) for ( var i= 0 ;i&

  • Javascript字符串常用方法详解

    字符串 字符串就是一个或多个排列在一起的字符,放在单引号或双引号之中. 'abc' "abc" length属性 js里的字符串类似于数组,都是一个一个字符拼凑在一起组成的,因此可以用length属性取得字符串的长度 var str = "hello" str.length; // 5 字符串常用的一些方法 1. charAt() str.charAt(n) => 返回字符串的第 n 个字符,如果不在 0~str.length-1之间,则返回一个空字符串. v

  • JavaScript实现的原生态Tab标签页功能【兼容IE6】

    本文实例讲述了JavaScript实现的原生态Tab标签页功能.分享给大家供大家参考,具体如下: 标签页是一个很常见的东西,在一些框架中也就很常见的, 但未必所有人都知道怎么写,很多人知道怎么在网上复制一份是真的, 这样不好,往往需要用大量的时间去修改网上复制下来的东西,还不如自己写一份快. 一.基本目标 创建一个如下的标签页,在IE8中与谷歌浏览器中的效果如下,几乎没有区别 谷歌浏览器: IE8: 二.制作过程 1.首先布置好场景,在一个图层内: 图层1~图层4四个超级链接是一个图层,然后各自

  • javaScript+turn.js实现图书翻页效果实例代码

    为了实现图书翻页的效果我们在网上可以看到很多教程 在这里推荐turn.js 网上的turn.js 有api 不过是英文的  很多人看起来不方便 .关于代码也是奇形怪状在这里我将详细讲解如何使用turn.js实现翻页效果 ,本篇文章只是讲解 turn.js 如何使用!!!!!!! 文章最后提供源码下载,结合源码看本文,turn.js更简单! 首先附上个人的文件路径 对于css   和 js文件不需要过多的解释   在这里要注意的是pages文件夹   这里个文件夹下放的是需要预览的图片文件   

  • JavaScript自定义数组排序方法

    本文实例讲述了JavaScript自定义数组排序方法.分享给大家供大家参考.具体分析如下: Array中有自带的排序功能,这个使用起来比较方便,我们有一点必须清楚,就是排序的依据,如果sort不传入参数的话,那就是按照字符编码(Unicode编码)的顺序排序. var a=["3","2","1"]; console.log(a[0].charCodeAt(0)); // 51 console.log(a[1].charCodeAt(0)); /

  • Javascript自定义事件详解

    Javascript自定义事件,其本质就是观察者模式(又称订阅/发布模式),它的好处就是将绑定事件和触发事件相互隔离开,并且可以动态的添加.删除事件. 下面通过实例,一步一步构建一个具体的Javascript自定义事件对象. 如:我有一个action1函数,我想每次在执行完action1后,触发另一个函数service1,那么代码我们可以这么写: //服务service1 function service1(){ } //函数action1 function action1(){ //other

随机推荐