Javascript经典实例 - 字符串

 

    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。

 

posted @ 2015-08-31 09:19  落霞与孤鹜齐飞  阅读(229)  评论(0编辑  收藏  举报