JS字符串方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS字符串方法相关的知识,希望对你有一定的参考价值。
学习一门语言字符串和数组方法是是必须学的
详细整理了一些,给你们参考一下
String类型基础
- 字符字面量
String 数据类型包含一些特殊的字符字面量,也叫转义序列 (具有特殊意义的字符)
字面量 | 含义 |
\n | 换行 |
\t | 制表符 |
\b | 空格 |
\r | 回车 |
\\ 或 \" 或 ( \‘ ) | 斜杠 或 双引号 或 单引号 |
- 字符串特点
- ECMAScript 中的字符串的不可变性:字符串一旦创建,他们的值就不能改变
- 转换为字符串
- toString()方法。
-
- 这个方法返回相应值得字符串
- 不能转换 null 和 undefined
- toString方法一般不需要传参数,
- 传递参数(二、八、十六 进制 )的时候表示---其它任意有效进制格式表示的字符串
例:
var num=10;
console.log(num.toString(16)) //"a" 十六进制的10 表示的是"a";
- String() 在不知道要转换的值是不是null 、undefined的情况也可以转换
- String() 使用规则
-
- 如果有toString() 方法 ,则调用该方法
- 如果可能是 null 或 undefined (时使用)则 返回 “null”或“undefined”;
String类型进阶
- String类型是字符串的对象的包装类型,可以通过String 构造函数创建
var str = new String("我是字符串");
- Sting对象的方法也可以在所有基本的字符串值中访问到。其中,通过继承的 valueOf()、toLocalString()、toString()方法,都返回对象所表示的基本字符串值。
方法大全
- String类型的每一个实例都有 length 属性--->表示字符串中包含多少个字符。
- 字符方法
-
- charAt() 以单字符字符串的形式返回给定位置的那个字符。
- charCodeAt() 返回该字符的字符编码。
- 在ECMAScript 5 中还定义可以使用方括号加数字索引的方式获得字符串中的指定字符 例子: str[2];
-
- 适用 IE8++
- IE7-- 会返回 undefined
- 字符串的操作方法
-
- concat() 用于将一个或多个字符串拼接起来
var stringValue = "hello ";
var result = stringValue.concat("world", "!");
alert(result); //"hello world!" 该方法可以拼接多个字符
alert(stringValue); //"hello" 该方法不会改变原字符串
-
-
- 可以拼接任意多个字符转
- 不会修改原字符串
- 实际应用中常使用(+)来拼接字符串
- 基于子字符串创建新字符串的方法 :
slice()、subStr()、subString():只传一个参数的时候(从该位置到字符串的结束位置);
这三个方法都不会修改原字符串。
-
var stringValue = "hello world";
alert(stringValue.slice(-3)); //"rld"
alert(stringValue.substring(-3)); //"hello world"
alert(stringValue.substr(-3)); //"rld"
alert(stringValue.slice(3, -4)); //"lo w"
alert(stringValue.substring(3, -4)); //"hel"
alert(stringValue.substr(3, -4)); //"" 空字符串
-
-
- slice()
-
- 第一个参数,为起始位置
- 第二个参数,为结束位置
- 参数为负值时:如果只有一个参数时 参数=(参数+Str.length);
如果第二个参数为负值时 参数=(参数+Str.length);
- subStr()
-
- 第一个参数,为起始位置
- 第二个参数,为返回字符的个数
- 参数为负值时:如果只有一个参数时 参数=(参数+Str.length);
如果第二个参数为负值时 参数= 0;
- subString();
-
- 小的参数为起始位置 ,大的参数为结束位置
- 当参数为负值时:将参数转化为 0
-
- 字符串的位置方法--->作用: 从一个字符串中搜索给定的字符串,然后返回字符串的位置(如果没有找到,返回 -1);
var stringValue = "hello world";
alert(stringValue.indexOf("o", 6)); //7
alert(stringValue.lastIndexOf("o", 6)); //4
-
- indexOf()
-
- 该方法从字符串的开头搜索
- 可以接收第二个参数,从哪个位置开始查找
- lastIndexOf()
-
- 该方法从字符串的结尾向前搜索
- 可以接收第二个参数,从哪个位置开始查找
- 应用:可以应用第二个参数实现所有字符串的查找
- trim()方法 -----› 创建一个字符串的副本,删除前置和后缀的所有空格然后返回结果
-
- ECMAScript 5 才为字符串定义trim()方法
- IE9++ 支持
- 字符串的大小写转换方法 ---->在不知道代码在那种语言环境中运行的时候,建议使用针对地区的方法会更稳妥
-
- toLowerCase()
- toLocaleLowerCase() 针对特定地区实现
- toUpperCase()
- toLocalUpperCase() 针对特定地区实现
var stringValue = "hello world";
alert(stringValue.toLocaleUpperCase()); //"HELLO WORLD"
alert(stringValue.toUpperCase()); //"HELLO WORLD"
alert(stringValue.toLocaleLowerCase()); //"hello world"
alert(stringValue.toLowerCase()); //"hello world"
- 字符串的模式匹配方法
-
- match()
-
- 本质是调用RegExp的exec()方法相同
- match只接收一个参数(正则表达式 或 RegExp对象)
- 返回值:一个数组
- 如果没有找到匹配项,则返回 -1;
var text = "cat, bat, sat, fat";
var pattern = /.at/;
//和 pattern.exec(text)的结果相同
var matches = text.match(pattern); //该方法返回的是一个数组
alert(matches.index); //0
alert(matches[0]); //"cat"
alert(pattern.lastIndex); //0
-
- search()
-
- 参数:字符串或者RegExp对象制定的一个正则表达式
- 返回值:返回字符串中第一个匹配项的索引,如果没有找到返回 -1
- 为了简化替换字符串的操作:ECMAScript 提供了 replace()防范
-
- replace()方法
-
- 参数:第一个参数,RegExp对象 或者 一个字符串(该字符串不会被转换成正则表达式)
第二个参数,一个字符串或者一个函数
如果第一个参数是字符串,那么只会,替换第一个字符串,
如果想要替换所有的字符串,唯一的办法就是提供一个正则表达式,而且要制定全局(g)标志
- 参数:第一个参数,RegExp对象 或者 一个字符串(该字符串不会被转换成正则表达式)
var text = "cat, bat, sat, fat";
var result = text.replace("at", "ond");
alert(result); //"cond, bat, sat, fat"
result = text.replace(/at/g, "ond"); //添加全局(g)标志
alert(result); //"cond, bond, sond, fond"
-
-
- split() 基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放到一个数组中
-
- 第一个参数:可以是字符串也可以是RegExp对象
- 也可以接收第二个参数,--指定数组的大小
-
var colorText = "red,blue,green,yellow";
var colors1 = colorText.split(","); //["red", "blue", "green", "yellow"]
var colors2 = colorText.split(",", 2); //["red", "blue"]
var colors3 = colorText.split(/[^\,]+/); //["", ",", ",", ",", ""]
-
-
-
- 对于传入RegExp对象的时候 各种浏览器会有不同的处理方式 了解更多参考 javascript split bugs:Fixed!(http://blog.stevenlevithan.com/archives/cross-browser-split) 作者: Steven Levithan
-
-
- localeCompare()方法
- 作用:比较两个字符串,并返回下列返回值
- 如果字符串在字母表中排在传入的参数字符串之前:返回一个负数(一般是 -1),
反之:返回正数 (一般是 1) - 如果两个字符串一样:返回 0
- 如果字符串在字母表中排在传入的参数字符串之前:返回一个负数(一般是 -1),
- 作用:比较两个字符串,并返回下列返回值
var stringValue = "yellow";
alert(stringValue.localeCompare("brick")); //1
alert(stringValue.localeCompare("yellow")); //0
alert(stringValue.localeCompare("zoo")); //-1
- forCharCode()方法
- String构造函数本身的一个静态方法---->接收一个或多个字符串编码 ,然后转化成字符串
alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello"
- html方法 将其转化成html标签 ----目前停止使用
以上是关于JS字符串方法的主要内容,如果未能解决你的问题,请参考以下文章