首页 > web前端 > js教程 > 正文

javascript 自定义常用方法

PHP中文网
发布: 2016-05-16 18:47:54
原创
1295人浏览过

比如说页面的字符处理,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 ;
}


/* 构造特定样式的字符串,用  包含 */
string.prototype.style = function(style) {
return " " , this , " " );
}

// 构造类似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));
}

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

法语写作助手
法语写作助手

法语助手旗下的AI智能写作平台,支持语法、拼写自动纠错,一键改写、润色你的法语作文。

法语写作助手 31
查看详情 法语写作助手


java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号