网络技术 > 前端设计
JS字符串操作函数大全
分类:前端设计    时间:2014-08-19    浏览:4943次

/*
===========================================
//去除左边的空格
===========================================
*/
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.

javascript 字符串处理
一、声明字符串:
var normal_monkey = "I am a monkey!<br>";
document.writeln("Normal monkey " + normal_monkey);
var bold_monkey = normal_monkey.bold();
document.writeln("Bold monkey " + bold_monkey);
这里的声明: var bold_monkey = normal_monkey.bold();
和下面对声明是等同的:
var bold_monkey = "<b>" + normal_monkey + "</b>";
第1个版本的声明看起来要简明得多。这里用到了字符串对象中
的bold对象,其他的字符串对象还有indexOf, charAt,
substring, 以及split, 这些方法可以深入字符串的组成结构。
首先我们研究一下indexOf。
2、indexOf
indexOf用于发现一系列的字符在一个字符串中等位置并告诉你子字符串的起始位置。如
果一个字符串中部包含该子字符串则indexOf返回returns "-1."
例子:
var the_word = "monkey";
//让我们从单词 "monkey"开始。
var location_of_m = the_word.indexOf("m");
//location_of_m(字母m的位置)将为0,因为字母m位于该字符串的起始位置。
var location_of_o = the_word.indexOf("o");
//location_of_o(字母o的位置)将为1。
var location_of_key = the_word.indexOf("key");
//location_of_key(key的位置)将为3因为子字符串“key”以字母k开始,而k
在单词monkey中的位置是3。
var location_of_y = the_word.indexOf("y");
//location_of_y)字母y的位置)是5。
var cheeky = the_word.indexOf("q");
//cheeky值是-1,因为在单词“monkey”中没有字母q。
indexOf更实用之处:
var the_email = prompt("What’s your email address?", "");
var the_at_is_at = the_email.indexOf("@");
if (the_at_is_at == -1)
{
alert("You loser, email addresses must
have @ signs in them.");
}
这段代码询问用户的电子邮件地址,如果用户输入的电子邮件地址中不包含字符 则 提
示用户"@你输入的电子邮件地址无效,电子邮件的地址必须包含字符@。"
3、charAt
chatAt方法用于发现一个字符串中某个特定位置的字符。
这里是一个例子:
var the_word = "monkey";
var the_first_letter = the_word.charAt(0);
var the_second_letter = the_word.charAt(1);
var the_last_letter = the_word.charAt(the_word.length-1);
the_first_letter(第1个字符)是"m"
the_second_letter(第2个字符)是"o"
the_last_letter(最后一个字符)是 "y"
注意利用字符串的length(长度)属性你可以发现在包含多少个字符。在本例中,
the_word是"monkey",所以the_word.length是6。不要忘记在一个字符串中第1个字符的
位置是0,所以最后一个字符的位置就是length-1。所以在最后一行中用了
the_word.length-1。>>
4、子字符串(substring)
子字符串(substring)和charAt有些象,不同之处在于它能够从一个单词中抓取整个的
子字符串,而不只是字母,这里是其格式:
var the_substring = the_string.substring(from, to);
"From"指的是子字符串中第1个字母的位置,"to"有点奇特,它是该子字符串中比最后
一个位置大1的位置.使用这种神奇的方法你可以标记子字符串的起始和结束位置,用
"to"的位置减去"from"的位置就会得出该子字符串的长度:
var the_string = "monkey";
var clergy = the_string.substring(0,4);
var tool = the_string.substring(3,6);
运行该段代码后变量clergy的值为"monk"; 变量tool的值为"key"。
子字符串常和indexOf一起使用,将字符串分成若干块.例如,
你可以从一个给定的URL中抽取出其域名:
var the_url = prompt("What’s the URL?","");
var lead_slashes = the_url.indexOf("//");
var domain_start = lead_slashes + 2;
var without_resource = the_url.substring(domain_start, the_url.length);
var next_slash = without_resource.indexOf("/");
var domain = without_resource.substring(0, next_slash);
这段代码的意思是:如果你输入
"http://www.webmonkey.com/javascript/index.html";,则域名就是
"www.webmonkey.com" .如果这个方法对你来说有些麻烦,我将向你介绍如何使用split
方法简化其执行过程.但是首先我们作一些分析.
基本的技巧是将第1个斜杠和第2个斜杠之间的内容分离出来:
var the_url = prompt("What’s the URL?","");
//这行代码向用户询问一个URL.假设用户输入了
"http://www.webmonkey.com/javascript/index.html.";
var lead_slashes = the_url.indexOf("//");
这行代码确定第一个双斜杠的位置.在本例中lead_slashes的值是5,因为双斜杠的位
置从5开始.
你可能会想,通常的URL都是以http://开始,所以双斜杠的位置肯定是在5开始,为什
么还要加入indexOf这一段多余的代码呢?但是问题的关键在于你不知道用户在填入URL
时是否一定填入http:,他们也许会不小心多键入了一个空格,也许他们所键入的URL在
一个加密服务器上,其URL是"https://www.whatever.com/"; .在编程你必须预料到种种
可能发生的问题.所以我们必须用indexOf方法确定双斜杠的确切的起始位置.
var domain_start = lead_slashes + 2;
这行代码用于计算该域名的第1个字母的起始位置.由于这里有一个双斜杠,所以域名
第1个字母的起始位置应该在双斜杠所在位置加2的位置.
var without_resource = the_url.substring(domain_start, the_string.length);
这段代码将域名起始位置往后的所有字符都提取出来.所以执行完这行代码后
without_resource是"www.webmonkey.com/javascript/index.html."
var next_slash = without_resource.indexOf("/");
这行代码计算出该字符串中下一个斜杠的位置,而从该字符串起始位置到这个斜杠之间
的内容就是域名.在本例中下一个斜杠的位置是17。
var domain = without_resource.substring(0, next_slash);
最后一步是提取出该字符串起始位置到下一个斜杠之间的所有内容.在本例中使得域名
等同于"www.webmonkey.com"。
这样做确实很麻烦,利用split方法则可以使该过程容易很多.>>
5、分割方法(splitting method)
你可以使用split方法用限位器来分割一系列的名称,然后将其
放在一个数组中.例如:
var my_friends ="trixie,moxie,sven,guido,hermes";
var friend_array =my_friends.split(",");
for (loop=0; loop < friend_array.length;loop++)
{ document.writeln(friend_array[loop] + " is myfriend.<br>");}
这段代码将字符串my_friends分割成包含5个元素的数组.JavaScript可以为你自动建
立一个数组,所以你无需使用new Array().
将字符串分割成数组之后,我们使用了循环语句写出每一个名称.我们可以利用split方
法简化前面所讲到的域名提取:
var the_url = prompt("What’s the URL?","");
var first_split = the_url.split("//");
var without_resource = first_split[1];
var second_split = without_resource.split("/");
var domain = second_split[0];
这段代码简化了很多而且也更容易理解.我们来分析一些这段代码:
var the_url = prompt("What’s the URL?","");
提示用户输入一个URL,假设用户输入
"http://www.webmonkey.com/javascript/index.html"; .
var first_split = the_url.split("//");
将用户输入的字符串分割成两块:first_split[0]是"http:",first_split[1]是
"www.webmonkey.com/javascript/index.html."
var without_resource = first_split[1];
//提取出数组中的第2个元素,所以现在without_resource是
"www.webmonkey.com/javascript/index.html."
var second_split = without_resource.split("/");
将without_resource分割成3块:www.webmonkey.com,javascript, 和index.html.现
在你可以看到split的用途了吧?
var domain = second_split[0];
现在我们提取出新数组中的第1个元素就可得出域名.

/*
判断指定的内容是否为空,若为空则弹出 警告框
*/
function isEmpty(theValue, strMsg){
if(theValue==""){
alert(strMsg+"不能为空!");
return true;
}
return false;
}
/*
中文判断函数,允许生僻字用英文“*”代替
返回true表示是符合条件,返回false表示不符合
*/
function isChinese(str){
var badChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
badChar += "abcdefghijklmnopqrstuvwxyz";
badChar += "0123456789";
badChar += " "+" ";//半角与全角空格
badChar += "`~!@#$%^&()-_=+]\\|:;\"\\''<,>?/";//不包含*或.的英文符号
if(""==str){
return false;
}
for(var i=0;i var c = str.charAt(i);//字符串str中的字符
if(badChar.indexOf(c) > -1){
return false;
}
}
return true;
}
/*
数字判断函数,返回true表示是全部数字,返回false表示不全部是数字
*/
function isNumber(str){
if(""==str){
return false;
}
var reg = /\D/;
return str.match(reg)==null;
}

/*
判断给定的字符串是否为指定长度的数字
是返回true,不是返回false
*/
function isNumber_Ex(str,len){
if(""==str){
return false;
}

if(str.length!=len){
return false;
}

if(!isNumber(str)){
return false;
}
return true;
}

/*
money判断函数,允许第一位为"-"来表示欠钱
返回true表示格式正确,返回false表示格式错误
*/
function isMoney(str){
if(""==str){
return false;
}
for(var i=0;i var c = str.charAt(i);
if(i==0){
if(c!="-"&&(c<"0"||c>"9")){
return false;
}else if(c=="-"&&str.length==1){
return false;
}
}else if(c < "0" || c > "9"){
return false;
}
}
return true;
}
/*
英文判断函数,返回true表示是全部英文,返回false表示不全部是英文
*/
function isLetter(str){
if(""==str){
return false;
}
for(var i=0;i var c = str.charAt(i);
if((c<"a"||c>"z")&&(c<"A"||c>"Z")){
return false;
}
}
return true;
}
/*
空格判断,当包含有空格返回false,当不包含一个空格返回true
""不能被判断
*/
function notInSpace(str){
if(""==str){
return false;
}
var badChar =" ";
badChar += " ";
for(var i=0;i var c = str.charAt(i);//字符串str中的字符
if(badChar.indexOf(c) > -1){
return false;
}
}
return true;
}
/*
发票号判断函数,返回true表示是发票号,返回false表示不符合规范
*/
function isFPH(str){
if(""==str){
return false;
}
for(var i=0;i var c = str.charAt(i);
if((c < "0" || c > "9") && (c!="-")&&(c!=",")){
return false;
}
}
return true;
}
/*
电话判断函数,允许“数字”、“;”、“-”、“(”、”)“,
true表示是电话号码
*/
function isTelephone(str){
var trueChar = "()-;1234567890";
if(""==str){
return false;
}
for(var i=0;i var c = str.charAt(i);//字符串str中的字符
if(trueChar.indexOf(c) == -1) return false;
}
return true;
}
/**
学制可以为1-7,也可以为3.5这种形式,不能超过7年或者低于1年
*/
function isXZ(str){
if(""==str){
return false;
}
var reg = /^[1-6](\.5)?$/;
var r = str.match(reg);
if(null!=r){
return true;
}else{
if(str=="7"){
return true;
}else{
return false;
}
}
}

/*
判断证书编号是否符合要求,证书编号包含中文、数字、大小写字母、(、)、-
是返回true,不是返回false
*/
function isZSBH(str){
if(""==str){
return false;
}
for(var i=0;i var c = str.charAt(i);
alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
alpha += "abcdefghijklmnopqrstuvwxyz";
alpha += "()-";
if(!isChinese(c)&&!isNumber(c)&&alpha.indexOf(c)==-1){
return false;
}
}
return true;
}

/*
身份证判断函数,是返回true,不是返回false
15位数字,18位数字或者最后一位为X(大写)
*/
function isSFZ(str){
if(""==str){
return false;
}
if(str.length!=15&&str.length!=18){//身份证长度不正确
return false;
}
if(str.length==15){
if(!isNumber(str)){
return false;
}
}else{
str1 = str.substring(0,17);
str2 = str.substring(17,18);
alpha = "X0123456789";
if(!isNumber(str1)||alpha.indexOf(str2)==-1){
return false;
}
}
return true;
}
/*
得到今天的年,月,日
调用方法:today = new getToday(); 则today.year为今天的年以此类推
*/
function getToday(){
this.now = new Date();
this.year = this.now.getFullYear();
this.month = this.now.getMonth();
this.day = this.now.getDate();
}


js判断数字,字母,中文
1.

var reg = /^(\w|[\u4E00-\u9FA5])*$/;
if(arr=username.match(reg))
{
ti=1;
return ture;
}
else
{
alert("用户名只允许为英文,数字和汉字的混合,\n请检查是否前后有空格或者其他符号");
ti=0;
return false;
}

2.利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'''')" onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\u4E00-\u9FA5]/g,''''))"

用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'''')" onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\uFF00-\uFFFF]/g,''''))"

用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^\d]/g,'''') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\d]/g,''''))"

用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[\W]/g,'''') "onbeforepaste="clipboardData.setData(''text'',clipboardData.getData(''text'').replace(/[^\d]/g,''''))"


数字
<script>
function check()
{
if(!isNaN(document.all.form.str.value))
{
alert("数字");
}
</script>
字母
<script>
function check()
{
var str = /[_a-zA-Z]/;
if(str.test(document.all.form.str.value))
{
alert("字母");
}
}
</script>
<form name="form" action="" onsubmit="return check();">
<input type=text name=str>
<input type=submit>
<form>

-
/**
* 一些常用的javascript函数(方法)
*
* 为便于使用,均书写成String对象的方法
* 把他保存为.js文件,可方便的扩展字符串对象的功能
*
* 方法名 功 能
* -
* Trim 删除首位空格
* Occurs 统计指定字符出现的次数
* isDigit 检查是否由数字组成
* isAlpha 检查是否由数字字母和下划线组成
* isNumber 检查是否为数
* lenb 返回字节数
* isInChinese 检查是否包含汉字
* isEmail 简单的email检查
* isDate 简单的日期检查,成功返回日期对象
* isInList 检查是否有列表中的字符字符
* isInList 检查是否有列表中的字符字符
*/

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

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

/*** 检查是否由数字组成 ***/
String.prototype.isDigit = function() {
var s = this.Trim();
return (s.replace(/\d/g, "").length == 0);
}

/*** 检查是否由数字字母和下划线组成 ***/
String.prototype.isAlpha = function() {
return (this.replace(/\w/g, "").length == 0);
}
/*** 检查是否为数 ***/
String.prototype.isNumber = function() {
var s = this.Trim();
return (s.search(/^[+-]?[0-9.]*$/) >= 0);
}

/*** 返回字节数 ***/
String.prototype.lenb = function() {
return this.replace(/[^\x00-\xff]/g,"**").length;
}

/*** 检查是否包含汉字 ***/
String.prototype.isInChinese = function() {
return (this.length != this.replace(/[^\x00-\xff]/g,"**").length);
}

/*** 简单的email检查 ***/
String.prototype.isEmail = function() {
var strr;
var mail = this;
var re = /(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
re.exec(mail);
if(RegExp.$3!="" && RegExp.$3!="." && RegExp.$2!=".")
strr = RegExp.$1+RegExp.$2+RegExp.$3;
else
if(RegExp.$2!="" && RegExp.$2!=".")
strr = RegExp.$1+RegExp.$2;
else
strr = RegExp.$1;
return (strr==mail);
}

/*** 简单的日期检查,成功返回日期对象 ***/
String.prototype.isDate = function() {
var p;
var re1 = /(\d{4})[年./-](\d{1,2})[月./-](\d{1,2})[日]?$/;
var re2 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{2})[年]?$/;
var re3 = /(\d{1,2})[月./-](\d{1,2})[日./-](\d{4})[年]?$/;
if(re1.test(this)) {
p = re1.exec(this);
return new Date(p[1],p[2],p[3]);
}
if(re2.test(this)) {
p = re2.exec(this);
return new Date(p[3],p[1],p[2]);
}
if(re3.test(this)) {
p = re3.exec(this);
return new Date(p[3],p[1],p[2]);
}
return false;
}
/*** 检查是否有列表中的字符字符 ***/
String.prototype.isInList = function(list) {
var re = eval("/["+list+"]/");
return re.test(this);
}

Copyright © 2014-2020 XfengNet.COM Inc. All Rights Reserved. 苏ICP备08014032号
返回顶部