JavaScript 常用字符串处理与正则表达式验证方法汇总

作者:异步漫步时间:2026-10-23 22:28:47浏览:114

本文整理了一系列常用的 JavaScript 字符串处理函数与正则表达式验证方法。内容涵盖字符串长度计算、去空白、大小写比较、截取替换、StringBuilder 模拟以及数字、邮箱、电话、身份证等常见格式的正则校验,旨在为前端开发提供便捷的代码参考。

JavaScript 字符串处理与正则验证函数库

本文主要涉及页面字符处理及 JavaScript 正则表达式验证等场景。作者结合个人开发经验与网络资源,对常用函数进行了归纳整理,以便日后查阅。该系列文章旨在抛砖引玉,汇总日常开发中高频使用的工具函数。


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下一页阅读全文

作者最新文章