JavaScript 之 String 对象
String 对象
之前学习的是 基本数据类型 String 类型,现在讨论的是 String对象(包装类型)。
String的特点:字符串的不可变性。
var str = 'abc';
str = 'hello';
分析上面两行代码,起初给 str 赋值为 'abc'。当重新给 str 赋值的时候,常量 ‘abc’ 不会被修改,依然在内存中。
重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变。
注意:由于字符串的不可变,在大量拼接字符串的时候会有效率问题。
创建字符串对象
var str = new String('Hello World'); // 通过构造方法来创建字符串对象
常用方法
注意:字符串的所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。
1、字符方法
charAt() // 获取指定位置处字符
charCodeAt() // 获取指定位置处字符的 ASCII 码
str[0] // HTML5 的方法,IE8+支持,同 charAt() 方法
2、字符串操作方法
concat() // 拼接字符串,等效于+,+更常用
slice() // 从 start位置开始,截取到 end 位置,end 取不到
substring() // 返回一个字符串在开始索引到结束索引(不包括)之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。
substr(index,length) // 返回一个字符串中从指定位置开始到指定字符数的字符(length省略,到字符串末尾)
3、位置方法
indexof() // 返回调用它的String
对象中第一次出现的指定值的索引,如果没有,返回 -1
lastIndexof() // 返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1,从该字符串的后面向前查找
4、去除空白
trim() // 只能去除字符串前后的空白
5、大小写转换方法
to(Local)UpperCase() // 转换为(本地)大写
to(Local)LowerCase() // 转换为(本地)小写
6、其他方法
search() // 返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1
replace(regexp,substr) // 返回一个由替换值替换一些或所有匹配的模式后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数
split() // 指定的分隔符字符串将一个String
对象分割成字符串数组
fromCharCode() // 返回由指定的UTF-16代码单元序列创建的字符串(将 ASCII 码转换为字符串)
案例:
1、查找字符串中所有o出现的位置。
var s = 'abcoefoxyozzopp';
var array = [];
do {
var index = s.indexOf('o', index + 1);
if (index != -1) {
array.push(index);
}
} while (index > -1);
console.log(array);
2、把字符串中所有的o替换成!
var s = 'abcoefoxyozzopp';
var index = -1;
do {
index = s.indexOf('o', index + 1); if (index !== -1) {
// 替换
s = s.replace('o', '!');
}
} while(index !== -1);
console.log(s);
3、判断一个字符串中出现次数最多的字符,统计出现次数
var s = 'abcoefoxyozzopp';
var ch;
// 此字符出现的次数
var num;
// 记录字符串中每一个字符出现的次数
var o = {}; for (var i = 0; i < s.length; i++) {
var item = s.charAt(i);
if (o[item]) {
// 已经有该属性,+1
o[item]++;
} else {
// 对象中没有该属性
o[item] = 1;
}
} // 2 求最大值 并且找到次数最多的字符
// 假设最大值是1
num = 1;
for (var key in o) {
if (num < o[key]) {
// 最多的次数
num = o[key];
// 次数最多的字符
ch = key;
}
} console.log(num);
console.log(ch);
4、获取 url 后面的参数
// 获取url后面的参数
function getParams(url) {
// 获取? 后面第一个字符的索引
var index = url.indexOf('?') + 1;
// url中?后面的字符串 name=zs&age=18&a=1&b=2
var params = url.substr(index);
// 使用& 切割字符串 ,返回一个数组
var arr = params.split('&');
var o = {};
// 数组中每一项的样子 key = value
for (var i = 0; i < arr.length; i++) {
var tmpArr = arr[i].split('=');
var key = tmpArr[0];
var value = tmpArr[1]; o[key] = value;
}
return o;
}
var url = 'http://www.baidu.com/login?name=zs&age=18&a=1&b=2';
var obj = getParams(url);
console.log(obj); console.log(obj.name);
console.log(obj.age);
JavaScript 之 String 对象的更多相关文章
- JavaScript中String对象的match()、replace() 配合正则表达式使用
正则表达式由来已久,查找替换功能非常强大,但模板难记复杂. JavaScript中String对象的match().replace()这2个方法都要使用正则表达式的模板.当模板内容与字符串不相匹配时, ...
- JavaScript中String对象的方法介绍
1.字符方法 1.1 charAt() 方法,返回字符串中指定位置的字符. var question = "Do you like JavaScript?"; alert(ques ...
- Javascript中String对象的的简单学习
第十一课String对象介绍1:属性 在javascript中可以用单引号,或者双引号括起来的一个字符当作 一个字符对象的实例,所以可以在某个字符串后再加上.去调用String 对象 ...
- Javascript数组,String对象,Math对象,Date对象,正则表达式
标题栏的滚动<html><head><title>山西众创金融</title></head>function init(){ //1.拿到标 ...
- JavaScript:String 对象
ylbtech-JavaScript:String 对象 1.返回顶部 String 对象 String 对象用于处理文本(字符串). 创建 String 对象的语法: new String(s); ...
- JavaScript 字符串(String)对象
String 对象 String 对象用于处理文本(字符串). 创建 String 对象的语法: new String(s); String(s); 参数 参数 s 是要存储在 String 对象中或 ...
- JavaScript的String对象
1.创建String对象 Html标签的格式编排方法:可以将String对象的字符串内容输出成对应的html标签. 示例: var str = "JavaScript程序设计"; ...
- javascript之String对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript 字符串(String)对象的方法
anchor() 描述:用于创建 HTML 锚 原型:stringObject.anchor(anchorname) 用法: <script> var txt="Hello wo ...
随机推荐
- [codevs1286]郁闷的出纳员
题目描述 Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复 ...
- Margin和padding失效
太久不写原生果然不行,Margin和padding对div有效,对span失效,原因就不解释了(元素性质,块状之类的)
- PYTHON读取EXCEL内容再转变成HTML添加到OUTLOOK中
需求 读取excel里的表格里的内容,然后打开本机的outlook.把excel里的内容添加到正文里,注意.这里是要添加到正文!正文!正文!而不是添加到附件里 设计思路 1.excel处理 打开exc ...
- 洛谷 P1508
P1508 所属知识点:DP 主要题意: 就是求一个矩阵从下边走到上边,可以走自己前方或左前方或右前方. 问走到上边一共经过的路径和. 类型题:P1216 解题思路: 参考上边的类型题(因为比较简单) ...
- P3258 [JLOI2014]松鼠的新家题解
题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有\(n\)个房间,并且有\(n-1\)根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在"树& ...
- TCGA简易下载工具 SangerBox
下载地址:http://sangerbox.com/ https://shengxin.ren/article/208 Understanding TCGA mRNA Level3 analysis ...
- this与bind(this) (es5新增)
this与bind(this) this this指向的是当前函数的作用域(对象实例),有如下的例子 const app = { name: 'xiaoming', log() { console.l ...
- Jenkins工具学习(一)
Jenkins的下载及安装 Jenkins下载地址:https://jenkins.io/download/ 下载后的直接解压安装 根据自己的喜好选择一种方式安装: 如果选择推荐安装,会自动下载一些插 ...
- 2019 ICPC 银川站
I. Base62(高精度进制转换) 比赛当时雷菊苣和队长俩人拿着大数板子摸了一百多行(然后在缺少大数板子的情况下雷菊苣一发过了orz) 今天补题随便摸了个高精度进制转换的板子交上去就过了还贼短,, ...
- 在C++中调用FFTW
FFTW是一个可以进行可变长度一维或多维DFT的开源C程序库,是目前最快的FFT算法实现. 本文简述了在Windows平台上,如何在C++中调用FFTW,所使用的IDE为Visual Studio 2 ...