JavaScript里处理字符串的一些常用方法
1.length 属性返回字符串的长度
let srt = "hello world!";
console.log(srt.length) // 12
2.indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
let str="Hello world!"
console.log(str.indexOf("Hello")); // 0
console.log(str.indexOf("World")); // -1
console.log(str.indexOf("world")); // 6
- indexOf() 方法对大小写敏感!
如果要检索的字符串值没有出现,则该方法返回 -1。常用来判断是否含有该字符
let url = 'https://www.cnblogs.com/imMeya/p/11492490.html'
if(url.indexOf("?") == -1){
console.log("url中没有'?'");
}else{
console.log("含有");
}
// -> url中没有'?'
3.lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引
- 如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1
- indexOf() 和 lastIndexOf()两种方法都接受作为检索起始位置的第二个参数。
let srt = "hello world! hello china";
console.log(srt.lastIndexOf('hello')) // 13
console.log(srt.indexOf('hello',5)) //13
4.search() 方法搜索特定值的字符串,并返回匹配的位置
- indexOf() 与 search(),是相等的。
这两种方法的区别在于:
- search() 方法无法设置第二个开始位置参数。
- indexOf() 方法无法设置更强大的搜索值(正则表达式)。
let str="Hello world!"
console.log(str.search("Hello")); // 0
console.log(str.search("World")); // -1
console.log(str.search("world")); // 6
5.substring() 方法用于提取字符串中介于两个指定下标之间的字符。
- substring() 不接受负的参数。
let str="Hello world!"
console.log(str.substring(3,7)); // lo wo
console.log(str.substring(3)); // lo world!
6.slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
let str="Hello world!"
console.log(str.slice(3,7)); // lo w
console.log(str.slice(3)); // lo world!
console.log(str.slice(-2)); // d! 。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
7.substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
stringObject.substr(start,length)
let str="Hello world!"
console.log(str.substr(3)); // lo world!
console.log(str.substr(3,2)); // lo
String 对象的方法 slice()、substring()都可返回字符串的指定部分。slice() 比 substring() 要灵活一些,因为它允许使用负数作为参数。
8.replace() 方法用另一个值替换在字符串中指定的值。
- replace() 方法不会改变调用它的字符串。它返回的是新字符串。
- replace() 方法对大小写敏感!
let str = "Hello world!";
console.log(str.replace('Hello','Hi')); // Hi world!
- 如需执行大小写不敏感的替换,请使用正则表达式 /i(忽略大小写)
- 请注意正则表达式不带引号。
let str = "Hello world!";
console.log(str.replace(/hello/i,'Hi')); // Hi world!
默认地,replace() 只替换首个匹配
如需替换所有匹配,请使用正则表达式的 g 标志(用于全局搜索)
let str = "Hello world! hello China !";
console.log(str.replace(/hello/ig,'Hi')); // Hi world! Hi China !
9.toUpperCase() 把字符串转换为大写
let text = 'Hello world!';
console.log(text.toUpperCase()) //HELLO WORLD!
10.toLowerCase() 把字符串转换为小写
let text = 'HELLO WORLD!';
console.log(text.toLowerCase()) // hello world!
11.concat() 连接两个或多个字符串
- concat() 方法可用于代替加运算符。
- 所有字符串方法都会返回新字符串。它们不会修改原始字符串
let text1 = "Hello";
let text2 = "World!";
let text3 = text1.concat(" ",text2);
console.log(text3); //Hello world!
- concat() 方法可用于代替加运算符。下面两行是等效的
let text = "Hello" + " " + "World!";
let text = "Hello".concat(" ","World!"); //Hello world!
12.trim() 方法删除字符串两端的空白符
let str = " Hello World! ";
console.log(str.trim()); //Hello world!
- Internet Explorer 8 或更低版本不支持 trim() 方法。
- 如需支持 IE 8,您可搭配正则表达式使用 replace() 方法代替
let str = " Hello World! ";
console.log(str.trim()); //Hello world!
console.log(str.replace(/\s+/g,'')); // HelloWorld! 去掉所有空格
console.log(str.replace(/(^\s*)|(\s*$)/g,'')); //Hello world! 去掉前后空格
13.charAt() 方法返回字符串中指定下标(位置)的字符串
let str = 'Hello World!';
console.log(str.charAt(0)) //H
console.log(str[0]); //H 此方法不建议使用
14.charCodeAt() 方法返回字符串中指定索引的字符 unicode 编码
let str = 'Hello World!';
console.log(str.charCodeAt(0)) // 72
15.split() 将字符串转换为数组
let txt = "h,e,l,l,o";
console.log(txt.split(",")); // ["h", "e", "l", "l", "o"] 用逗号分隔
console.log(txt.split(" ")); // ["h,e,l,l,o"] 用空格分隔
//如果分隔符是 "",被返回的数组将是间隔单个字符的数组
let txt2 = "Hello";
console.log(txt2.split("")); // ["h", "e", "l", "l", "o"] 分隔为字符
16.match()使用正则表达式与字符串相比较。
var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var regexp = /[A-E]/gi;
var matches_array = str.match(regexp); console.log(matches_array);
// ['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']
使用match不传参数
var str = "Nothing will come of nothing."; str.match(); // [""]
17.padEnd()在当前字符串尾部填充指定的字符串, 直到达到指定的长度。 返回一个新的字符串。
- srt.padEnd(targetLength [,padString])
- 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
'abc'.padEnd(10); // "abc "
'abc'.padEnd(10, "foo"); // "abcfoofoof"
'abc'.padEnd(6, "123456"); // "abc123"
'abc'.padEnd(1); // "abc"
18.padStart()在当前字符串头部填充指定的字符串, 直到达到指定的长度。 返回一个新的字符串。
- srt.padEnd(targetLength [,padString])
- 当前字符串需要填充到的目标长度。如果这个数值小于当前字符串的长度,则返回当前字符串本身。
'abc'.padStart(10); // " abc"
'abc'.padStart(10, "foo"); // "foofoofabc"
'abc'.padStart(6,"123465"); // "123abc"
'abc'.padStart(8, "0"); // "00000abc"
'abc'.padStart(1); // "abc"
19.repeat()返回指定重复次数的由元素组成的字符串对象。
"abc".repeat(-1) // RangeError: repeat count must be positive and less than inifinity
"abc".repeat(0) // ""
"abc".repeat(1) // "abc"
"abc".repeat(2) // "abcabc"
"abc".repeat(3.5) // "abcabcabc" 参数count将会被自动转换成整数.
"abc".repeat(1/0) // RangeError: repeat count must be positive and less than inifinity ({toString : () => "abc", repeat : String.prototype.repeat}).repeat(2)
//"abcabc",repeat是一个通用方法,也就是它的调用者可以不是一个字符串对象.
es6新增
20.includes()直接用来判断字符串是否存在
let str = 'Hello world";
console.log(str.includes('abc') // false
21.startsWith()判断该字符串是否以searchString开头(可以用来检测是否是地址)
let str = 'http://www.baidu.com';
console.log(str.startsWith('http://')); // true
22.endsWith()判断该字符串是否以searchString结尾(可以用来检测文件扩展名)。
let str = './images/icon/login.png';
console.log(str.endsWith('.png')); // true
JavaScript里处理字符串的一些常用方法的更多相关文章
- JavaScript里处理数字的一些常用方法
1.toString() 把字符串转换为数值. let num = 123; console.log(typeof(num)); //number console.log(typeof(num.toS ...
- JavaScript里处理数组的一些常用方法
修改器方法: 1.pop() 方法从数组中删除最后一个元素 pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值. let arr2 = ['zh ...
- Javascript里,想把一个整数转换成字符串,字符串长度为2
Javascript里,想把一个整数转换成字符串,字符串长度为2. 想把一个整数转换成字符串,字符串长度为2,怎么弄?比如 1 => "01"11 => " ...
- 谈JavaScript组合拼接字符串的效率 --转载
JavaScript组合拼接字符串的效率.在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出.比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值 ...
- javascript中对字符串的操作总结
原文:javascript中对字符串的操作总结 没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了 ...
- JavaScript里的依赖注入
JavaScript里的依赖注入 我喜欢引用这句话,“程序是对复杂性的管理”.计算机世界是一个巨大的抽象建筑群.我们简单的包装一些东西然后发布新工具,周而复始.现在思考下,你所使用的语言包括的一些内建 ...
- JavaScript里的循环方法总结
JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) ...
- JavaScript里的循环方法之forEach,for-in,for-of
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标 ...
- JavaScript里的循环方法:forEach,for-in,for-of
JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) ...
随机推荐
- CSS 奇技淫巧:动态高度过渡动画
这个问题源自于掘金上的一个留言,一个朋友问到,为什么我下面这段代码的高度过渡动画失效了? 伪代码大概是这样: { height: unset; transition: all 0.3s linear; ...
- 【Flutter】容器类组件之填充
前言 Padding可以给其子节点添加填充(留白). 接口描述 class EdgeInsets extends EdgeInsetsGeometry { // 分别指定四个方向的填充 const E ...
- AvaloniaUI体验
公司的原有的PC端WPF产品有跨平台需求,无奈微软自己的xamarin对wpf的支持当前尚未达到能支撑产品的成熟度,于是经过搜索,发现了一个号称用WPF实现跨平台的第三方图形库AvaloniaUI. ...
- Hive Query生命周期 —— 钩子(Hook)函数篇
无论你通过哪种方式连接Hive(如Hive Cli.HiveServer2),一个HQL语句都要经过Driver的解析和执行,主要涉及HQL解析.编译.优化器处理.执行器执行四个方面. 以Hive目前 ...
- 【Linux】ps -ef 和ps aux 的区别
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格, ...
- kubernets之向外部应用暴露应用
一 通过NodePort来暴露服务 前面已经介绍的服务的一些作用,例如将集群内部的应用暴露给集群内部的pod使用,将外部的应用通过服务暴露给内部应用使用,但是服务最大的作用不仅仅是这些 而是将集群内 ...
- C语言目的概念(C语言学习笔记)
什么是目 目是针对操作符来说的,一个操作符影响两个操作数就表示该操作符为双目运算符 举个例子: 1+2 这里的加号影响了1和2两个操作数,所以"+"就是双目运算符 +1,-1 这里 ...
- 分布式系统:dubbo的连接机制
目录 研究这个问题的起因 dubbo的连接机制 为什么这么做 dubbo同步转异步 dubbo的实现 纯netty的简单实现 总结 研究这个问题的起因 起因是一次面试,一次面试某电商网站,前面问到缓存 ...
- ECharts特效-折线图上一个光点来回移动
参考地址:https://www.makeapie.com/editor.html?c=xxxcG6NGk0 效果图打开上面的网址就可以看到. 核心代码如下,该效果实现的难点是数据的封装,还有eval ...
- 中文电子病历命名实体识别(CNER)研究进展
中文电子病历命名实体识别(CNER)研究进展 中文电子病历命名实体识别(Chinese Clinical Named Entity Recognition, Chinese-CNER)任务目标是从给定 ...