javascript 学习之string对象
2015-10-30 20:20
627 查看
问题
javascript 是一种弱类型的语言,非常方便控制。学习一次,感觉熟悉了语法就OK了,实际上使用的时候依然是问题百出。
通过实际问题是学习的一种高效方式。
问题:
var str = "sda12fsdc4vbd339",使用三条js语句分别实现下列功能: 1) 删除所有的a,b,c,即str="sd12fsd4vd339" 2) 将给每个数字加一个[],即str="sd[1][2]sd[4]vd[3][3][9]" 3) 将每一个数字乘以2,str="sd24fsd8vd6618"
探访String对象
字符串是 JavaScript 的一种基本的数据类型。String 对象的 length 属性声明了该字符串中的字符数。
String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。
String对象属性
属性 | 描述 |
---|---|
length | 字符串的长度 |
方法 | 描述 |
---|---|
charAt(index) | 返回在指定位置的字符。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。 |
charCodeAt(index) | 返回在指定的位置的字符的 Unicode 编码。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。 |
concat(stringX,stringX,…,stringX) | 连接字符串。concat() 方法将把它的所有参数转换成字符串,然后按顺序连接到字符串 stringObject 的尾部,并返回连接后的字符串。stringObject.concat() 与 Array.concat() 很相似。请注意,使用”+”运算符来进行字符串的连接运算通常会更简便一些。 |
fromCharCode(code) | 从字符编码创建一个字符串。该方法是 String 的静态方法,字符串中的每个字符都由单独的数字 Unicode 编码指定。 |
indexOf(searchvalue,fromindex) | 检索字符串。从fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到返回 searchvalue 的第一次出现的位置。如果没有出现,返回 -1。 |
lastIndexOf(searchvalue,fromindex) | 从后向前搜索字符串。如果在 stringObject 中的 fromindex 位置之前存在 searchvalue,则返回的是出现的最后一个 searchvalue 的位置。 |
match(searchvalue) match(regexExpression) | 找到一个或多个正则表达式的匹配。match() 方法将检索字符串 stringObject,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。该数组的第 0 个元素存放的是匹配文本,而其余的元素存放的是与正则表达式的子表达式匹配的文本。除了这些常规的数组元素之外,返回的数组还含有两个对象属性。index 属性声明的是匹配文本的起始字符在 stringObject 中的位置,input 属性声明的是对 stringObject 的引用。 |
replace(regexp/substr,replacement) | 替换与正则表达式匹配的子串。 |
search(regexp) | 检索与正则表达式相匹配的值。stringObject 中第一个与 regexp 相匹配的子串的起始位置。注释:如果没有找到任何匹配的子串,则返回 -1。search() 方法不执行全局匹配,它将忽略标志 g。它同时忽略 regexp 的 lastIndex 属性,并且总是从字符串的开始进行检索,这意味着它总是返回 stringObject 的第一个匹配的位置。 |
slice(start,end) | 提取字符串的片断,并在新的字符串中返回被提取的部分。包括字符串 stringObject 从 start 开始(包括 start)到 end 结束(不包括 end)为止的所有字符。String 对象的方法 slice()、substring() 和 substr() (不建议使用)都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。slice() 与 substr() 有所不同,因为它用两个字符的位置来指定子串,而 substr() 则用字符位置和长度来指定子串。String.slice() 与 Array.slice() 相似。 |
split(separator,howmany) | 把字符串分割为字符串数组。String.split() 执行的操作与 Array.join 执行的操作是相反的。 |
substr() | 从起始索引号提取字符串中指定数目的字符。 |
substring() | 提取字符串中两个指定的索引号之间的字符。 |
toLocaleLowerCase() | 把字符串转换为小写。 |
toLocaleUpperCase() | 把字符串转换为大写。 |
toLowerCase() | 把字符串转换为小写。 |
toUpperCase() | 把字符串转换为大写。 |
toString() | 返回字符串。 |
valueOf() | 返回某个字符串对象的原始值。 |
方法 | 描述 |
---|---|
anchor(anchorname) | 创建 HTML 锚。 |
big() | 用大号字体显示字符串。 |
blink() | 显示闪动字符串。 |
bold() | 使用粗体显示字符串。 |
fixed() | 以打字机文本显示字符串。 |
fontcolor(color) | 使用指定的颜色来显示字符串。 |
fontsize(size) | 使用指定的尺寸来显示字符串。size 参数必须是从 1 至 7 的数字。 |
italics() | 使用斜体显示字符串。 |
link() | 将字符串显示为链接。 |
localeCompare() | 用本地特定的顺序来比较两个字符串。 |
small() | 使用小字号来显示字符串。 |
strike() | 使用删除线来显示字符串。 |
sub() | 把字符串显示为下标。 |
sup() | 把字符串显示为上标。 |
分析问题
var str = "sda12fsdc4vbd339",使用三条js语句分别实现下列功能: 1) 删除所有的a,b,c,即str="sd12fsd4vd339" 2) 将给每个数字加一个[],即str="sd[1][2]sd[4]vd[3][3][9]" 3) 将每一个数字乘以2,str="sd24fsd8vd6618"
分析,可知,一定使用的是replace()函数,但是又不是一个具体字符串替换另一个具体字符串,所以使用的一定是正则表达式。在JavaScript中,函数对于正则表达式的支持还是非常好的。
RegExp 对象
参看文章《javascript 学习之RegExp对象》string.replace()
语法:stringObject.replace(regexp/substr,replacement)
参数 | 描述 |
---|---|
regexp/substr | 必需。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
replacement | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
字符 | 替换文本 |
---|---|
$1、$2、…、$99 | 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。 |
$& | 与 regexp 相匹配的子串。 |
$` | 位于匹配子串左侧的文本。 |
$’ | 位于匹配子串右侧的文本。 |
$$ | 直接量符号。 |
解决问题
<script type="text/javascript"> var str = "afdccccsd5sb9bb12cdn8da"; //删除所有abc var s1 = str.replace(/[abc]/g,""); //将数字变成[数字],比如1->[1] var s2 = str.replace(/([0-9])/g,"[$1]"); //将数字*2,比如1变成2,3变成6等 var s3 = str.replace(/[0-9]/g,function(number){ return number*2; }); document.write(s1 + "<br/>"); document.write(s2 + "<br/>"); document.write(s3 + "<br/>"); document.write(str.charCodeAt(str.length)); </script>
相关文章推荐
- JS中判定问题
- JavaScript简介
- 使用JSON进行数据传输的总结
- js截取中间字符串
- S2SH+ajax+json-------ajax解析json文件编写
- jsp页面元素
- 兼容amd,commonjs和browser的模块写法
- JSON详解
- 日历
- 将Record 数组转成jsonstring
- 浅析Javascript原型继承
- JavaScript选项卡
- javaScript正则表达式1
- Angular.js笔记
- JavaScript中的循环类型(整理笔记)
- 《JavaScript高级编程》读书笔记——函数
- 关于文件上传服务器开发
- 备份一个省市区JSON数据
- 《JavaScript高级编程》读书笔记——数据类型
- javascript性能优化