一、字符串
1] ‘this is a string‘这是字符串直接量,new String(‘this is a string‘)这是字符串对象,字符串对象可以用字符串对象所带的属性和方法,直接量在“表面上”也可以用,但实质是先转成了对象,做处理结束以后再丢弃对象,返回结果。如:
1 var city =new String("St. Louis"); 2 var lcCity = city.toLowerCase();//输出st. louis
2] 连接字符串可以通过运算符“+”,也可以通过String对象自带函数concat,如:
var oracle = "oracle"; oracle += " sql";//输出oracle sql /* 等价于 */ var oracle = "".concat("oracle"," sql");//当然,可以添加更多的参数
3] 字符串比较一般都是通过运算符"=="、"<"、">",还有一个String对象的方法localeCompare也可以作比较,如:
var f1 = "apple”; var f2 = "grape"; var i = f1.localeCompareCompare(f2);//返回-1 /* 相同为0,小于为-1,大于为1(f1对比f2) */
4] 在字符串中查找子字符串可以通过String的内置对象indexOf,返回的是子字符串的位置,如果用lastIndexOf可以从右向左计数;当然,还有其他很多方法,这只是其中的一种。索引方式举例如下:
"this apple is my apple".lastIndexOf("apple");//返回值17 "this apple is my apple".lastIndexOf("apple",12);//返回值5 "this apple is my apple".lastIndexOf("apple",3);//返回值-1(没找到)
5] 分割字符串,大家应该都知道的,substr、substring,还有就是split,用这些方法,配合indexOf就可以提取字符串了。例子就不举了。
6] 检查非空字符串,运用typeof、valueOf以及length长度即可。typeof检测数据基本类型,valueOf是所有对象的方法,不局限于string,返回调用对象的基本值——之所以还要用它,是因为如果不确定字符串是否存在,用length会报错,而且如果字符串不是直接量,而是一个被new出来的String对象,那么typeof也会返回object类型,不过一般在我们实际应用中,出现如此不确定的东西的时候还是很少的,所以一般省略valueOf也都可以达到目的。
7] 去除字符串末尾空白,可以用字符串对象自带的replace方法,用正则将空白都替换成"",不过ECMAScript5新增了一个trim的方法,可以自动去除空白,但是IE8不支持,可以自己封装一个,比如:
if(typeof String.trim == "undefined"){ String.prototype.trim = function(){ return this.replace(/(^\s)|(\s*$)/g, ""); } }
这样String对象里面如果没有trim方法,则会给String原型上添加这样一个方法,可以被使用。除此之外,还可以单独去除左边和右边的空白,trimLeft,trimRight。
(未完待续...)