资讯专栏INFORMATION COLUMN

js字符串常用的一些方法

刘福 / 3345人阅读

摘要:返回字符串的长度字符串属性返回字符串的第个字符,如果不在之间,返回一个空字符串返回在字符串中首次出现的位置从位置开始查找,如果不存在,则返回。

(1) str.length => 返回字符串的长度(字符串属性

var str = "JavaScript";
str.length; // 10

(2) str.charAt(n) => 返回字符串的第n个字符,如果n不在0 ~ str.length-1之间,返回一个空字符串

var str = "JavaScript";
str.charAt(3);  // "a"
str.charAt(10); // ""

(3) str.indexOf(substr[, start]) => 返回 substr 在字符串 str 中首次出现的位置,从 start 位置开始查找,如果不存在,则返回 -1。
start可以是任意整数,默认值为 0。如果 start < 0 则查找整个字符串(如同传进了 0)。如果 start >= str.length,则该方法返回 -1,除非被查找的字符串是一个空字符串,此时返回 str.length

var str = "JavaScript";
str.indexOf("av");   // 1
str.indexOf("av",2); // -1
str.indexOf("",11);  // 10
str.indexOf("",8);   // 8

eg: 使用 indexOf 统计一个字符串中某个字母出现的次数

var str = "To be, or not to be, that is the question.";
var count = 0;
var pos = str.indexOf("e");

while (pos !== -1) {
  count++;
  pos = str.indexOf("e", pos + 1);
}

console.log(count); // 4

(4) str.lastIndexOf(substr[, start]) => 返回 substr 在字符串 str 中最后出现的位置,从 start 位置向前开始查找,如果不存在,则返回 -1。

"canal".lastIndexOf("a")   // 3

(5) str.includes(substr[, start]) => ES6方法判断 substr 是否被包含在 str 中,如果是返回true,否则返回false

var str = "To be, or not to be, that is the question.";

str.includes("To be");     // true
str.includes("To be", 1);  // false
str.includes("TO BE");     // false

(6) str.startsWith(substr[, start]) => ES6方法判断 str 是否是以 substr “开头”的,如果是返回true,否则返回false

var str = "To be, or not to be, that is the question.";

str.startsWith("To be");         // true
str.startsWith("not to be");     // false
str.startsWith("not to be", 10); // true

(7) str.endsWith(substr[, n]) => ES6方法判断 str 是否是以 substr “结尾”的,如果是返回true,否则返回false。可选参数n表示前n个字符,默认值 str.length

var str = "To be, or not to be, that is the question.";

str.endsWith("question.");  // true
str.endsWith("to be");      // false
str.endsWith("To be", 5);   // true

(8) str.repeat(n) => ES6方法返回一个新字符串,表示将str重复n次,n >= 0

"abc".repeat(0)      // ""
"abc".repeat(1)      // "abc"
"abc".repeat(2)      // "abcabc"
"abc".repeat(3.6)    // "abcabcabc"

(9) str.toLowerCase() => 将 str 转换为小写,并返回 str 的一个副本,不影响字符串本身的值

var str = "JavaScript";
str.toLowerCase(); // "javascript"
console.log(str);  // "JavaScript"

(10) str.toUpperCase() => 将 str 转换为大写,并返回 str 的一个副本,不影响字符串本身的值

var str = "JavaScript";
str.toUpperCase(); // "JAVASCRIPT"
console.log(str);  // "JavaScript"

(11) str.trim() => 去除 str 开头和结尾处的空白字符,返回 str 的一个副本,不影响字符串本身的值

var orig = "   foo  ";
orig.trim();       // "foo"
console.log(orig); // "   foo  "

(12) str.substring(start[, end]) => 返回从 start 到 end(不包括)之间的字符,start、end均为非负整数

var str = "JavaScript";
str.substring(0,4); // "Java"
str.substring(4,0); // "Java",start > end,执行效果相当于将两个参数调换
str.substring(4,4); // "",start == end,返回空字符串

(13) str.substr(start[, length]) => 返回 str 中从指定位置开始到指定长度的子字符串,start可为负值

var str = "JavaScript";
str.substr(0,4);  // "Java"
str.substr(-6,6); //"Script"

(14) str.slice(start[, end]) => 返回从 start 到 end(不包括)之间的字符,start、end可为负值

var str = "The morning is upon us!";
str.slice(4, -1); // "morning is upon us"
str.slice(1, 3); // "he"

(15) str.replace(regexp|substr, newSubStr|function) => 替换 str 的子字符串

var str = "Apples are round, and apples are juicy.";
str.replace("apples","oranges");    // "Apples are round, and oranges are juicy."
str.replace(/apples/gi, "oranges"); // "oranges are round, and oranges are juicy."

(16) str.search(regexp) => 查找 str 与一个正则表达式是否匹配。如果匹配成功,则返回正则表达式在字符串中首次匹配项的索引;否则,返回 -1。如果参数传入的是一个非正则表达式对象,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象

var str = "I love JavaScript!";
str.search(/java/); // -1
str.search(/Java/); // 7
str.search(/java/i); // 7
str.search("Java"); // 7

(17) str.match(regexp) => 返回一个包含匹配结果的数组,如果没有匹配项,则返回 null。如果参数传入的是一个非正则表达式对象,则会使用 new RegExp(obj) 隐式地将其转换为正则表达式对象

var str = "Boy boy, Gay gay!";
str.match(/boy/); // ["boy"]
str.match(/gay/gi); // ["Gay", "gay"]
str.match(/lesbian/g); // null

(18) str.split([separator][, limit]) => 返回一个数组,分隔符 separator 可以是一个字符串或正则表达式

var str = "Hello?World!";
str.split(); // ["Hello?World!"]
str.split(""); // ["H", "e", "l", "l", "o", "?", "W", "o", "r", "l", "d", "!"]
str.split("?"); // ["Hello", "World!"]
str.split("",5); // ["H", "e", "l", "l", "o"]

(19) + => 字符串拼接,直接用加号,宇宙最强大法!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79595.html

相关文章

  • js封装一些常用方法

    摘要:整理自己常用的一些封装方法数组按照指定长度拆分数组按指定长度拆分删除数组中指定元素删除数组中指定元素将小数指定到精确位置将小数字符串精确到指定位数字符串类型的小数精确到小数点第几位根据微妙时间戳获取年月日时分秒根据微妙时间戳获取年月日时分秒 整理自己常用的一些封装方法 1.数组按照指定长度拆分 // 数组按指定长度拆分 export function chunk (data, coun...

    senntyou 评论0 收藏0
  • js常用时间戳互相转换方法,以及一些其它相关时间方法

    摘要:前言做项目其实经常需要与时间接触。时间戳与时间的转换问题,在这做一个记录。我自己试了最新版的,,返回的是一样的。 前言 做项目其实经常需要与时间接触。时间戳与时间的转换问题,在这做一个记录。 1.获取特定格式的时间 myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.ge...

    李昌杰 评论0 收藏0
  • js和原生应用常用数据交互方式

    摘要:一旦使用了那么就少不了和原生开发的一些交互如下的方案能够帮助你解决。其实现原理是原生在的对象中注入一个方法,以备原生应用进行处罚触发,就和我们平时去调用的方法一样简单。代码常用调用原生的方式都在这里体现。 showImg(https://segmentfault.com/img/remote/1460000016955237); 场景1 在原生app中经常会使用到H5页面,比如说电商中...

    raledong 评论0 收藏0
  • js基础常用知识点由浅入深整理篇

    摘要:因为同一时间,只能处理一个异步,这又牵扯到单线程问题了。然后控制台默默打印了个目前前端,异步主要为前后端交互以及定时器,仅仅说前端,如果说的话,还有文件读取等其他的方面会异步。 此篇文章完全按照我个人理解去写。 1.何为JS 先说说js干啥的。不负责点说,js就是操作浏览器的。 有人可能说nodeJS,nodeJS严格意义上只能说是用的ES,因为他没有dom ,也没有bom。 简单点说...

    Zack 评论0 收藏0
  • 工作中常用es6+特性

    摘要:结合工作中使用情况,简单对进行一些复习总结,包括常用的语法,等,以及短时间内要上手需要重点学习的知识点不同工作环境可能有一些差别,主要参考链接是阮一峰的博客以及外文博客阮老师大部分文章是直接翻译的这个博客简介先说一下,是一个标准化组织,他们 结合工作中使用情况,简单对es6进行一些复习总结,包括常用的语法,api等,以及短时间内要上手需要重点学习的知识点(不同工作环境可能有一些差别),...

    xcold 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<