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"