转载自http://www.educity.cn/java/671094.html
一、常见的字符串处理函数 
// 返回字符的长度,一个中文算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=\ ""ncat(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)); 
} 
原文地址:http://www.cnblogs.com/mxyhws/p/3746911.html