网站首页 > 基础教程 正文
5.6 基本包装类型
5.6.1 Boolean类型(略)
5.6.2 Number类型(略)
5.6.3 String类型
1)、创建方法
var strObj = new String("我的名字");
2)、字符方法
document.write(strObj.length); // 11 显示字符串长度
document.write(strObj.charAt(1)); // e 以0为基数,获取指定位置的字符
document.write(strObj.charCodeAt(1)); // e 以0为基数,获取指定位置的字符的编码
document.write(strObj[1]); // e 得到指定序号的字符
3)、字符串的操作方法
a)、拼接concat()
var strObj = new String("hello ");
var newStr = strObj.concat("world");
alert(newStr); // hello world 不会影响strObj
b)、截取
var str = "hello world";
alert(str.slice(3)); // lo world 取第3个到最后位置
alert(str.substring(3)); // lo world 取第3个到最后位置
alert(str.substr(3)); // lo world 取第3个,长度没有则为最大长度
alert(str.slice(3,7)); // lo w 取第3个到第6个
alert(str.substring(3,7)); // lo w 取第3个到第6个
alert(str.substr(3,7)); // lo worl 取第3个开始,长度为7
如果指定的序号是负数:
alert(str.slice(-3)) 等同 alert(str.slice(str.length - 3));
alert(str.slice(3,-4)) 等同 alert(str.slice(3,str.length - 4));
alert(str.substring(-3)); // hello world 负数变为0
alert(str.substring(3,-4)); // 0,1,2 hel
alert(str.substr(-3)); // rld 总长-3=8,只有一个参数8时,会截取总长度
alert(str.substr(3,-4)); // 第二个参数为负数的话,则变为0,结果为空
c)、字符串位置方法
var str = "hello world";
alert(str.indexOf("e")); // 1 从前往后查找指定的字符首次出现的位置
alert(str.indexOf("e",3)); // -1 从前住后,从第3个符号开始查找指定的字符串位置,如果未找到则为-1
alert(str.lastIndexOf("e")); // 1 从后往前查找指定的字符首次出现的位置
alert(str.lastIndexOf("e",3)); // 1 从后住前,从第3个符号开始查找指定的字符串位置,如果未找到则为-1
要注意第二条与第四条代码,它们的结果是有差别的喔,第二条结果为-1,那是因为从序号3开始往后没有字符e了,所以为-1;
但如果从后往前的话,从序号3开始,序号1正是我们要找的字符e,所以为1。
个人觉得有必要将查询字符串位置列表的功能做成一个函数:
function searchPostion(str,e){
var position = new Array();
var pos = str.indexOf(e)
while (pos != -1){
position.push(pos);
pos = str.indexOf(e,pos + 1);
}
return position;
}
var mystr = "Lorem ipsum dolor site amet,consectetur adipisicing elit";
result = searchPostion(mystr,"e"); // 调用函数,查找字符e的位置
alert(result); // 3,21,25,32,35,52
d)、trim删除前置与后置空格,生成新的字符串
var str = " hello world ";
var newStr = str.trim();
alert(newStr); // hello world
注:即使str前后都没有空格,使用trim后也会生成新的字符串newStr。
e)、转换为大小写:
var str = "Hello World";
var 大写 = str.toUpperCase();
var 小写 = str.toLowerCase();
alert(大写); // HELLO WORLD
alert(小写); // hello world
f)、在字符串中应用正则表达式
1)、match方法
var str = "cat,bat,sat,fat"
var pat = /.at/;
var res = str.match(pat);
alert(res.index);
alert(res[0]);
alert(pat.lastIndex);
2)、search方法,此方法返回的是等查字符首次出现的字符位置
3)、替换字符串
var str = "cat,bat,sat,fat"
var res1 = str.replace("at","ond");
alert(res1); // cond,bat,sat,fat,只替换找到的第一个
var res2 = str.replace(/at/g,"ond");
alert(res2); // cond,bond,sond,fond,由于加了全局标记g,替换全部
注:模式两边不能有双引号
4)、replace第2个参数为函数
function htmlEscape(str){
return str.replace(/[<>"&]/g,function (match,pos,originalText) {
switch (match) {
case "<":
return "<";
case ">":
return ">";
case "&":
return "&";
case "\"":
return """;
}
});
}
var res = htmlEscape("<p class=\"greeting\">Hello world!</p>");
alert(res);
5)、split
var str = "red,blue,green,yellow";
var colors = str.split(","); // 以逗号作为分隔
alert(colors); // red,blue,green,yellow
alert(typeof(colors)); // 显示类型为object
var colors2 = str.split(",",2); // 以逗号作为分隔,指定数组大小为2个元素
alert(colors2); // red,blue
注:第一个参数作为分隔符,还可以使用正则表达式来分隔更复杂的情况,如下:
var str = "red blue,green|yellow";
var colors = str.split(/[ ,|]/g); // 以空格,逗号和|作为分隔
alert(colors); // red,blue,green,yellow
6)、localeCompare
var str = "y";
alert(str.localeCompare("b")); // 排在给出的字符串之后,即y在b之后,则为1
alert(str.localeCompare("y")); // 排在给出的字符串相同,则为0
alert(str.localeCompare("z")); // 排在给出的字符串之前,即y在z之前,则为-1
7)、fromCharCode给出字符编码转为字符
// String静态方法,即没有实例
var str = String.fromCharCode(104,101,108,108,111);
alert(str); // hello
- 上一篇: 每天提升一点Javascript功力
- 下一篇: JavaScript 版本
猜你喜欢
- 2024-11-21 关联数据无须重复输入,VBA轻松实现重组转换
- 2024-11-21 JS函数式编程中compose的实现
- 2024-11-21 前端面试:JavaScript字符串的常用的操作方法有哪些?
- 2024-11-21 前端面试:JavaScript 字符串的常用方法?
- 2024-11-21 JavaScript 版本
- 2024-11-21 每天提升一点Javascript功力
- 2024-11-21 9 个JavaScript 技巧
- 2024-11-21 总结:js中4类修改样式的方法
- 2024-11-21 Node+浏览器,JavaScript中字符串校验工具库——validator.js
- 2024-11-21 第14天|16天搞定前端,Javascript,要你何用?
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)