JS自带函数
concat语法:str.concat
将两个或多个字符的文本连接起来,返回一个新的字符串。
1
2
3
4
5
|
var
a =
"hello"
;
var
b =
",world"
;
var
d = a.concat(b).concat(c);
alert(c);
//c = "hello,world!"
|
indexOf(a,b)
a 必填,要检索的字符串值
b 可选的整数参数,规定在字符串中开始检索的位置。如省略该参数,则将从字符串的首字符开始检索。
返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。
注:若无起始位置位置是从 0 开始的
indexOf() 方法对大小写敏感
如果要检索的字符串值没有出现,则该方法返回 -1。
1
2
3
4
|
var
index1 = a.indexOf(
"l"
);
//index1 = 2
var
index2 = a.indexOf(
"l"
,3);
//index2 = 3
|
var str="Hello world!";
document.write(str.indexOf("Hello") + "<br />");//0
document.write(str.indexOf("World") + "<br />");//-1
document.write(str.indexOf("world"));//6
charAt(index)
返回指定位置的字符。传递参数是位置a。
注意: JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。
1
2
|
var
get_char = a.charAt(0);
//get_char = "h"
|
lastIndexOf(in)
返回字符串中一个子串最后一处出现的索引位置(从右到左搜索),如果没有匹配项,返回 -1 。
1
2
3
4
|
var
index1 = lastIndexOf(
'l'
);
//index1 = 3
var
index2 = lastIndexOf(
'l'
,2)
//index2 = 2
|
检查一个字符串或匹配一个正则表达式内容,如果没有匹配返回 null。
1
2
3
4
5
|
var
re =
new
RegExp(/^\w+$/);
var
is_alpha1 = a.match(re);
//is_alpha1 = "hello"
var
is_alpha2 = b.match(re);
//is_alpha2 = null
|
substring(start,end)
返回字符串的一个子串,传入参数是起始位置和结束位置。
1
2
3
4
|
var
sub_string1 = a.substring(1);
//sub_string1 = "ello"
var
sub_string2 = a.substring(1,4);
//sub_string2 = "ell"
|
substr(start,length)
返回字符串的一个子串,传入参数是起始位置和长度
1
2
3
4
|
var
sub_string1 = a.substr(1);
//sub_string1 = "ello"
var
sub_string2 = a.substr(1,4);
//sub_string2 = "ello"
|
replace(re,newstring)
用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
1
2
3
4
|
var
result1 = a.replace(re,
"Hello"
);
//result1 = "Hello"
var
result2 = b.replace(re,
"Hello"
);
//result2 = "Hello"
|
search
执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
1
2
3
4
|
var
index1 = a.search(re);
//index1 = 0
var
index2 = b.search(re);
//index2 = -1
|
提取字符串的一部分,并返回一个新字符串(与 substring 相同)。
如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
返回值
-
包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。
若未指定end,则要提取的子串包括 start 到原字符串结尾的字符串
1
2
3
4
|
var
sub_string1 = a.slice(1);
//sub_string1 = "ello"
var
sub_string2 = a.slice(1,4);
//sub_string2 = "ell"
|
split
通过将字符串划分成子串,将一个字符串做成一个字符串数组。
1
2
|
var
arr1 = a.split(
""
);
//arr1 = [h,e,l,l,o]
|
length
返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
1
2
|
var
len = a.length();
//len = 5
|
toLowerCase
将整个字符串转成小写字母。
1
2
|
var
lower_string = a.toLowerCase();
//lower_string = "hello"
|
toUpperCase
将整个字符串转成大写字母。
1
2
|
var
upper_string = a.toUpperCase();
//upper_string = "HELLO"
|
字符串函数扩充
/*
===========================================
//去除左边的空格
===========================================
*/
1
2
3
4
|
String.prototype.LTrim =
function
()
{
return
this
.replace(/(^\s*)/g,
""
);
}
|
/*
===========================================
//去除右边的空格
===========================================
*/
1
2
3
4
|
String.prototype.Rtrim =
function
()
{
return
this
.replace(/(\s*$)/g,
""
);
}
|
/*
===========================================
//去除前后空格
===========================================
*/
1
2
3
4
|
String.prototype.Trim =
function
()
{
return
this
.replace(/(^\s*)|(\s*$)/g,
""
);
}
|
/*
===========================================
//得到左边的字符串
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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);
}
|
/*
===========================================
//得到右边的字符串
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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开始
===========================================
*/
1
2
3
4
|
String.prototype.Mid =
function
(start,len)
{
return
this
.substr(start,len);
}
|
/*
===========================================
//在字符串里查找另一字符串:位置从0开始
===========================================
*/
1
2
3
4
5
6
7
8
9
10
|
String.prototype.InStr =
function
(str)
{
if
(str==
null
)
{
str =
""
;
}
return
this
.indexOf(str);
}
|
/*
===========================================
//在字符串里反向查找另一字符串:位置0开始
===========================================
*/
1
2
3
4
5
6
7
8
9
10
|
String.prototype.InStrRev =
function
(str)
{
if
(str==
null
)
{
str =
""
;
}
return
this
.lastIndexOf(str);
}
|
/*
===========================================
//计算字符串打印长度
===========================================
*/
1
2
3
4
|
String.prototype.LengthW =
function
()
{
return
this
.replace(/[^\x00-\xff]/g,
"**"
).length;
}
|
/*
===========================================
//是否是正确的IP地址
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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
;
}
}
|
/*
===========================================
//是否是正确的长日期
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
|
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]);
}
|
/*
===========================================
//是否是正确的短日期
===========================================
*/
1
2
3
4
5
6
7
8
9
10
|
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]);
}
|
/*
===========================================
//是否是正确的日期
===========================================
*/
1
2
3
4
|
String.prototype.isDate =
function
()
{
return
this
.isLongDate()||
this
.isShortDate();
}
|
/*
===========================================
//是否是手机
===========================================
*/
1
2
3
4
|
String.prototype.isMobile =
function
()
{
return
/^0{0,1}13[0-9]{9}$/.test(
this
);
}
|
/*
===========================================
//是否是邮件
===========================================
*/
1
2
3
4
|
String.prototype.isEmail =
function
()
{
return
/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(
this
);
}
|
/*
===========================================
//是否是邮编(中国)
===========================================
*/
1
2
3
4
|
String.prototype.isZipCode =
function
()
{
return
/^[\\d]{6}$/.test(
this
);
}
|
/*
===========================================
//是否是有汉字
===========================================
*/
1
2
3
4
5
|
String.prototype.existChinese =
function
()
{
//[\u4E00-\u9FA5]为汉字﹐[\uFE30-\uFFA0]为全角符号
return
/^[\x00-\xff]*$/.test(
this
);
}
|
/*
===========================================
//是否是合法的文件名/目录名
===========================================
*/
1
2
3
4
|
String.prototype.isFileName =
function
()
{
return
!/[\\\/\*\?\|:"<>]/g.test(
this
);
}
|
/*
===========================================
//是否是有效链接
===========================================
*/
1
2
3
4
|
String.prototype.isUrl =
function
()
{
return
/^http[s]?:\/\/([\w-]+\.)+[\w-]+([\w-./?%&=]*)?$/i.test(
this
);
}
|
/*
===========================================
//是否是有效的身份证(中国)
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
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
;
}
|
/*
===========================================
//是否是有效的电话号码(中国)
===========================================
*/
1
2
3
4
|
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
);
}
|
/*
===========================================
//是否是数字
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
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形式)
===========================================
*/
1
2
3
4
5
6
7
|
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);
}
|
/*
===========================================
//转换成全角
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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编码
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
String.prototype.toHtmlEncode =
function
()
{
var
str =
this
;
str=str.replace(/&/g,
"&"
);
str=str.replace(/</g,
"<"
);
str=str.replace(/>/g,
">"
);
str=str.replace(/\
'/g,"'
");
str=str.replace(/\
"/g,"
""
);
str=str.replace(/\n/g,
"<br>"
);
str=str.replace(/\ /g,
" "
);
str=str.replace(/\t/g,
" "
);
return
str;
}
|
/*
===========================================
//转换成日期
===========================================
*/
1
2
3
4
5
6
7
8
9
10
11
|
String.prototype.toDate =
function
()
{
try
{
return
new
Date(
this
.replace(/-/g,
"\/"
));
}
catch
(e)
{
return
null
;
}
}
|