javascript 字符类型 String对象 解析

String 是JAVASCRIPT的几大对象之一,本文全面分析String对象

[b]Unicode字符[/b]
JavaScript字符是Unicode字符,这样可以有效的处理国际字符(比如汉字)。
这个C、C++、C#中的做法不同,在JavaScript中,单引号和双引号都能用来定义字符串。因为JavaScript没有单独用来表示字符的类型(就像C#中的Char)。因此如下两个定义是完全等价的:

var hello = ‘Hello JavaScript’;
var hello = “Hello JavaScript”;

在使用引号的时候,要注意正确的嵌套,如下:
alert("\"你好'JavaScript'!\"");


[b]String对象[/b]
在JavaScript中,一切皆是对象!
字符串本质上也是对象,我们可以使用 new String(“你好JS”) 来初始化。我们前面介绍的Number本质上也是对象,可以new Number(12) 来初始化。

[b]字符长度[/b]
在字符串中,我们可以通过 length属性取得一个字符串的长度,比如:
“你好JS”.length  // 4;


[b]常用方法[/b]
同样的,字符串对象还有一些常用的方法:
[b]strObj.indexOf(subString[, startIndex])[/b]
返回 String 对象内第一次出现子字符串的字符位置。indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。
lastIndexOf则从字符串的最后向前查找匹配的字符串的位置。

示例:
"你好Javascript!".indexOf("a")
"你好Javascript!".lastIndexOf("a")


[b]strObj.substr(start [, length ])[/b]
返回一个从指定位置开始的指定长度的子字符串。
示例:
var hello = "你好JavaScript!";
var start = hello.indexOf("J");
var end = hello.lastIndexOf("!");
hello.substr(start, end - start)

[b]strObj.replace(findstr,newstr)[/b]
返回替换后的字符串
注意,这里的findstr可以为字符串,也可以为正则表达式。
注意下面的代码运行结果不一样:
hello.replace(/World/, "Javascript");  
hello.replace(/World/g, "Javascript");
在JavaScript中,replace与c#不一样,如果不指明全局替换,那么hello.replace(/World/, "Javascript")只会替换第一个找到的World,而c#则会替换所有的World,要在JavaScript实现全局替换,需要为正则表达式加上g(global)。
另外,字符串还有下面toUpperCase、toLowerCase等方法,用来将字符串转为大写或者小写,大家可以自己尝试下。

[b]函数全解[/b]

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位置的字符。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值