String 类 Attribute and method
anchor() 创建一个<a>标签的实例,将其name属性设置为被传递给此方法的字符串
big() 将字符串转换为<big>标签的一个实例
blink() 将字符串转换为<blink>标签的一个实例
bold() 将字符串转换为<bold>标签的一个实例
charAt() 返回传递给此方法的索引处的字符
concat() 连接被传递的两个字符串返回一个新字符串。
fixed() 将字符转换<tt> 固定的pitch字体标签的一个实例
fontcolor() 设置一个<font>标签实例的color属性
fontsize() 设置一个<font>标签实例的size属性
fromCharCode() 返回被传递给此方的ISO-Latin-1数字字符
indexOf() 返回被传递给此方法的字符串在一个sting对象的实例中第一次出现的索引
italics() 将字符串转换为<i>标签的一个实例
lastIndexOf() 返回被传递给此方法的字符串在一个sting对象的实例中最后一次出现处的索引
link() 将字符串转换为<a>标签的一个实例并且用被传递给此方法的URL设置的herf属性
match() 返回一个数组,此数组包含革于被传递给此方法的规则表达式而找到的匹配。
replace() 用被传递给此方法的规则表达式和替换字符串对调,用它的strin实例执行一个查找和替换。
search() 返回被传递给此方法的字符串中找到的匹配的索引位置。如果没有找到字符中距离,返回-1
Slice() 返回被传递给此方法的开始和结束索引之间的字符串。如果传递一个负值,索引以被传递的字符串尾部作为参考。
Small() 将字符串换为<small>标签的一个实例
Split() 返回被分割为段的字符串,这个分割由被传递给此方法的字符串和实例限制定义
Strike() 将字符串转换为<strike>标签的一个实例
Sub() 将字符串转换为<sub>标签的一个实例
Substr() 返回从被索引位置开始包含要返回的一定个数的字符的字符串。如果一个负值被传递,索引以被传递的字符串的尾部作为参考
substring() 返回被传递的开始和结束索引之间的字符
sup() 将字符串转换为<sup>标签的一个实例
toLowerCase() 将字符串中的所有字符转换为小写
toSource() 返回被传递的字符作为string对象的字符串表示
toString() 将被传递的字符作为string类型返回
toUpperCase() 将字符串中的所有字符转换为大写
length() 返回字符串的长度
prototype() 为程序提供一种向string对象实例添加属性的能力
String 类的扩展:
String.prototype.ToCharArray=function(){
return this.split("");
}
//倒序
String.prototype.Reverse = function(){
return this.split("").reverse().join("");
}
//是否包含指定字符
String.prototype.IsContains = function(str){
return (this.indexOf(str) > -1) ;
}
//判断是否为空
String.prototype.IsEmpty=function(){
return this=="";
}
//判断是否是数字
String.prototype.IsNumeric = function(){
var tmpFloat=parseFloat(this);
if(isNaN(tmpFloat)) return false;
var tmpLen=this.length-tmpFloat.toString().length;
return tmpFloat+"0".GetSame(tmpLen)==this;
}
//判断是否是整数
String.prototype.IsInt = function(){
if(this == "NaN") return false;
return this == parseInt(this).toString();
}
//合并多个空白为一个空白
String.prototype.resetBlank = function(){
return this.replace(/s+/g,"");
}
//除去左边空白
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.getNum = function(){
return this.replace(/[^d]/g,"");
}
// 保留字母
String.prototype.getEn = function(){
return this.replace(/[^A-Za-z]/g,"");
}
// 保留中文
String.prototype.getCn = function(){
return this.replace(/[^u4e00-u9fa5uf900-ufa2d]/g,"");
}
//获取字节长度
String.prototype.ByteLength=function()
{
return this.replace(/[^\x00-\xff]/g,"aa").length;
}
// 从左截取指定长度的字串
String.prototype.left = function(n){
return this.slice(0,n);
}
// 从右截取指定长度的字串
String.prototype.right = function(n){
return this.slice(this.length-n);
}
// HTML编码
String.prototype.HTMLEncode = function(){
var re = this;
var q1 = [/x26/g,/x3C/g,/x3E/g,/x20/g];
var q2 = ["&","<",">"," "];
for(var i=0;i<q1.length;i++)
re = re.replace(q1[i],q2[i]);
return re;
}
//获取Unicode
String.prototype.Unicode = function(){
var tmpArr=[];
for (var i=0; i<this.length; i++) tmpArr.push("&#" + this.charCodeAt(i) + ";");
return tmpArr.join("");
}
//指定位置插入字符串
String.prototype.Insert=function(index,str){
return this.substring(0,index)+str+this.substr(index);
}
//复制字符串
String.prototype.Copy=function(){
if(IE) window.clipboardData.setData("text",this.toString());
}
//追加格式化后的字符串
String.prototype.AppendFormat=function(str){
var arg=arguments;
str=str.replace(/\{(\d+)\}/g,function(a,b,c)
{
if(arg[parseInt(b)+1]) return arg[parseInt(b)+1];
else return a;
});
return this+str;
}
创建一个String 对象,语法:new String(stringValue),这个调用会将参数转换为字符串,并作为一个String 对象。事实上任何一个字符串常量都是一个String对象,可以将其直接作为对象来使用,这和使用new String()创建对象的区别是:typeof的返回值不同,一个是“stirng",另一个是"object".
string.indexOf(searchString,position)----从position(可选)位置开始,搜索字符串中的第一个searchSting所出现的位置并返回。例如:"hello,jack".indexOf("hello")将返回0;
"abcabc".indexOf("a",1)将返回3;
string.lastIndexOf(searchString,position)--------从position(可选)位置开始,搜索字符串中的最后一个searchString所出现的位置并返回。如:"abcabc".lastIndexOf("b")将返回4
string.charAt(pos)-------返回字符串中位置为pos的字符。例如:"abc".charAt(1)返回"b"
stirng.charCodeAt(pos)------返回字符串中位置为pos的字符代码。对于ASCII 字符,这将返回其ASCII代码。例如:"abc".charCodeAt(0)返回97,表示字符"a"的ASCII码。
string.slice(start,end)--------返回字符串中起始位置为start,结束位置为end(不包括end)的子字符串
string.split(separator,linmit)------将字符串以separator作为分割符切割成多个子字符串,并将他们作为一个数组返回。linmit(可选)表示数组的最大长度,超过的部分将被舍弃。separator分隔符不被包含在任何子字符串中,如果sepatator为空字符串,则返回字符串中的字符序列组成的数组。如果split方法没有任何参数,则返回仅包含字符串本身,仅有一个元素的数组。
string.split(separator,linmit)-------例如:"a1,b1,c1".split(",")将返回["a1","b1","c1"];
"a,b,c".split(",",2)将返回["a","b"];
"a,b,c".split("")将返回["a",",","b",",","c"];
"ab,c".split()将返回["ab,c"]
string.substr(start,length)--------返回字符串中起始位置为start,长度为length的子字符串。例如:"abcdefg".substr(1,3)将返回"bcd";
string.substring(start,end)------返回字符串中起始位置为start,结束位置为end(包括end)的子字符串。这个方法和slice方法唯一不同体现在是否包含了end位置的字符。
替换和匹配字符串
(1)replace(searchValue,replaceValue)方法
该方法将字符串中第一个出现的searchValue子字符串替换为replaceValue,并返回新的字符串。原有的字符串不受影响。
例如:var str1="aaaa";
var str2=str1.replace("a","b");
alert(str2);//输出"baaa"
alert(str1);//输出"aaaa"
上面代码中可以看出,使用replace函数仅能替换一个实例。如果要替换多个实例,则需要使用正则表达式,例如str.replace(/a/g,"b")能够将"aaaa"替换为"bbbb".
(2)match(reExp)方法
从字符串中搜索出匹配regExp正则表达式的所有子字符串,将他们作为一个数组返回。利用对象类型到布尔类型的转换规则,还可以判断一个字符串是否匹配regExp表示的正则表达式。
例如:var strInput=prompt("请输入一个数字:",0);
while(!strInput.match(/\d+/)){
strInput=prompt("请输入一个数字:",0);
}
(3)search(regExp)方法
从字符串中搜索出匹配regExp正则表达式的第一个子字符串,返回其索引位置。例如:var str="aabcabcabc";
alert(str.search(/abc/g));//显示“1”
(4)String 对象的大小写转换
var str="abc";
str.toLowerCase()//转化小写
str.toUpperCase()//转化大写
(5)String 对象的连接
var str="abc";
var str2=str.concact("def","ghi");
alert(str2);//将输出"abcdefghi"