ES6小实验-复习字符串

字符串用的很频繁,而它的方法也比较多,因此有必要好好的总结下。

1.字符串观赏方法

  charAt() :访问字符串中的特定字符

var str = "hello world"
console.log(str.charAt(1))//e

  该方法接收一个参数,即基于0的字符位置,

  charCodeAt():访问字符串中的特定字符的字符编码

var str = "hello world"
console.log(str.charCodeAt(1))//101

  该方法和上面方法很像,只是返回的不是字符,而是字符编码

  indexOf():查找字符的位置,可以传第二个参数作为起始位置

var str = "hello world"
console.log(str.indexOf("o"))//4

  lastIndexOf():从字符串尾部开始搜索,可以传第二个参数作为起始位置

var str = "hello world"
console.log(str.lastIndexOf("o"))//7

  match():字符串模式匹配,

var str = "cat,bat,sat,fat"
var pattern = /.at/g
var matches = str.match(pattern)
console.log(matches)//["cat", "bat", "sat", "fat"]

  search():字符串模式匹配,与match不同之处在于它返回的是第一个匹配项的索引

var str = "cat,bat,sat,fat"
var pattern = /.at/g
var matches = str.search(pattern)
console.log(matches)//0

2.字符串操作方法 

  concat():将一个或多个字符串拼接起来,原值不变

var str = "hello "
var result = str.concat(‘world‘)
console.log(result)//hello world
console.log(str)//hello 

  slice():截取子字符串,对原字符串不影响,第二个参数还是以0位为起点

var str = "hello world"
var result1 = str.slice(3)
var result2 = str.slice(3,7)
console.log(result1)//lo world
console.log(result2)//lo w
console.log(str)// hello world

  substr():截取子字符串,对原字符串不影响,第二个参数是要截取多少位

var str = "hello world"
var result1 = str.substr(3)
var result2 = str.substr(3,7)
console.log(result1)//lo world
console.log(result2)//lo worl
console.log(str)// hello world

  substring():截取子字符串,对原字符串不影响,第二个参数还是以0位为起点,它与slice()的区别在于当第二个参数为负数时,substring()和substr()会把负数变成0来处理,而slice()会把它和总长度相加来处理,这三个很容易混淆

var str = "hello world"
var result1 = str.substring(3,-4)
var result2 = str.substr(3,-4)
var result3 = str.slice(3,-4)
console.log(result1)//hel
console.log(result2)//“”
console.log(result3)// lo w

  trim(): 删除前置及后缀的所有空格,原字符串保持不变

var str = "    hello world    "
console.log(str.trim())//hello world

  toLowerCase(),toUpperCase():字符串大小写转换

var str = "hello world"
console.log(str.toUpperCase())//HELLO WORLD

  replace():第一个参数可以是一个RegExp对象或者一个字符串,第二个参数可以是一个字符串或者一个函数

var str = "cat,bat,sat,fat"
var pattern = /at/g
var result1 = str.replace("at", "ond")
var result2 = str.replace(pattern, "ond")
console.log(result1)//cond,bat,sat,fat
console.log(result2)//cond,bond,sond,fond

  split():基于指定的分隔符将一个字符串分隔成多个字符串,并放在一个数组中

var str = "red,blue,green,yellow"
console.log(str.split(","))//["red", "blue", "green", "yellow"]
console.log(str.split(/[^\,]+/))//["", ",", ",", ",", ""]
时间: 2025-01-04 15:24:48

ES6小实验-复习字符串的相关文章

ES6小实验-复习正则表达式

正则表达式总是记不住,这一次参考网上一篇的文章好好复习一遍 正则表达式构造函数(四种写法): var regex = new RegExp('xyz', 'i') var regex = new RegExp(/xyz/i) var regex = /xyz/i // ES6的写法.ES5在第一个参数是正则时,不允许此时使用第二个参数,会报错. // 返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符. // 下面代码返回”i”. new RegExp(/abc/ig, 'i'

ES6小实验-复习数组

ES6给数组添加了不少方法,我先把之前的方法总结一下: 1.Array.isArray():检测数组 var arr = ['a','b','c'] var str = 'abc' console.log(Array.isArray(arr))//true console.log(Array.isArray(str))//false 2.push():接收任意数量的参数,把它们逐个添加到数组末尾 var arr = ['a','b','c'] var item = arr.push('d','e

ES6小实验-字符串的扩展

ES6里面的对字符串的扩展实际上就是增加了一些方法,使对字符串的操作更加完善,下面做几个小实验来验证下: includes(): 返回布尔值,表示是否找到了参数字符串,支持第二的参数,表示开始的位置 'use strict'; var s = 'Hello world!'; console.log(s.includes('Hello'));//true startsWith(): 返回布尔值,表示参数字符串是否在源字符串的头部,支持第二的参数,表示开始的位置 'use strict'; var

ES6小实验-let和const(2)

继续小实验,上次写到块级作用域,那么为什么需要块级作用域呢?书中给了两个场景: 1.没有块级作用域,内层变量可能会覆盖外层变量.举例: var tmp = new Date() function f() { console.log(tmp) if(false) { var tmp = "hello world" } } f();//undefined 内层的tmp变量把外层的tmp变量覆盖,所以输出结果为undefined 2.用来计数的循环变量泄露为全局变量,举例: var s =

ES6小实验-函数的扩展

函数参数默认值 ES6允许为函数的参数直接设置默认值,即直接写在参数定义的后面 function log (x, y = "world") { console.log(x, y) } log("Hello")//Hello world 上面代码中,y是默认声明的,参数默认值可以与解构赋值的默认值,结合使用 function log ({x, y = "world"}) { console.log(x, y) } log({x: "Hel

ES6小实验-数组的扩展

数组方法已经很多,ES6给数组又增加了不少方法: 1.Array.from():用于将两类对象转为真正的数组,类似数组的对象(array-like object) 和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map) let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length:3 } let arr = Array.from(arrayLike) console.log(arr)//["a", "b&q

留言本小实验

实验目的: 利用PHP实现发布留言,并存在txt文本文件中,还可以从文本文件中读取留言,并显示在网页上. 实验代码: 先要用个表单提交留言,写一个简单的html如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 <html xmlns="http://www

关于java中equals与==的区别的小实验

java中equals与==经常容易混淆,简单一点说就是equals比较的是值是否相等,是一种方法,==比较的是二者是都为同一对象,是一种操作符. 做了几个小实验比较结果. 实验一: String str1="ab": String str2="ab": System.out.println(s1==s2)://trueSystem.out.println(str1.equals(str2));//true 这里的str1与str2都指向了常量池中的同一对象,所以S

基于互联网内容的中文分词小实验

分词对于搜索引擎,输入法输入提示,语音识别等其它人机交互系统等都很有用.互联网的海量信息为分词研究提供了大量的,动态更新的原始资料库.很多互联网公司都有基于互联网内容的分词系统.并且采用HADOOP等分析大量数据.这些听上去很高大上,但是仔细想想基本原理应该是比较容易理解的,我们每个程序员也很容易可以研究这个领域.所以做了一个简单的POC实验. 首先写一个Spider,从互联网页面抓取内容.因为只是简单实验,我只抓取一个页面,没有做递归抓取链接页面.抓取内容过滤掉HTML标签留下纯文本. 第二部