美文网首页
字符串方法

字符串方法

作者: haha2333 | 来源:发表于2019-07-28 18:00 被阅读0次

属性:length
方法:

  • charAt()

返回在指定位置的字符。
如果超出范围,返回一个空的字符串

var str="abc"
console.log(str.charAt(0))//a
console.log(str.charAt(10))
  • charCodeAt()

返回在指定的位置的字符的 Unicode 编码。
如果超出范围,返回NaN

var str="abc"
 console.log(str.charCodeAt(1))//98
  • concat()

连接字符串。返回一个新的字符串。
其实使用“+”更方便

 var a = "abc";  
 var b = "def";  
 var c = a.concat(b);
 console.log(c);//abcdef
  • indexOf()

检索字符串。参数:字符串。返回某个指定的字符串值在字符串中第一次出现的位置。找不到则返回-1。indexOf() 方法对大小写敏感!

可选参数:两个整数:规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。超过则返回-1。如省略该参数,则将从字符串的首字符开始检索。

 var str="Hello world!"
console.log(str.indexOf("Hello"))//0
console.log(str.indexOf("World"))//-1
console.log(str.indexOf("world"))///6
  • match()

match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回情况请看例子

 var str="1 abc 2 def 3"
console.log(str.match('abc')) // ["abc", index: 2, input: "1 abc 2 def 3"]
console.log(str.match(/\d+/g)) // ["1", "2", "3"]
  • replace()

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。返回新字符串,旧字符串不变

var str='abcbaaahfhji'
console.log(str.replace(/^a/,"A")) // Abcbaaahfhji
console.log(str.replace(/^a/g,"A")) // AbcbAAAhfhji
console.log(str.replace("b","B"))  // aBcbaaahfhji
str // 'abcbaaahfhji'
  • search()

用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果没有找到任何匹配的子串,则返回 -1。返回第一次出现位置

 var str="abc DEF!"
 console.log(str.search(/DEF/)) // 4
  • slice()

提取字符串的片断,并在新的字符串中返回被提取的部分。
stringObject.slice(start,end);
start :要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end:紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

 var str="abc def ghk"
console.log(str.slice(6))//f ghk
  • split()

把字符串分割为字符串数组。
stringObject.split(separator,howmany)
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。

howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

 var str="abc def ghi jkl"    
console.log(str.split(" "))//["abc", "def", "ghi", "jkl"]
console.log(str.split("") )//["a", "b", "c", " ", "d", "e", "f", " ", "g", "h", "i", " ", "j", "k", "l"]
console.log(str.split(" ",3))//["abc", "def", "ghi"]
  • toLocaleLowerCase()、toLowerCase()

把字符串转换为小写。

与 toLowerCase() 不同的是,toLocaleLowerCase() 方法按照本地方式把字符串转换为小写。只有几种语言(如土耳其语)具有地方特有的大小写映射,所有该方法的返回值通常与 toLowerCase() 一样。

var str="ABC def!"
console.log(str.toLocaleLowerCase())//abc def!
  • toLocaleUpperCase() 、toUpperCase()

把字符串转换为大写。

var str="ABC def!"
console.log(str.toLocaleUpperCase())//ABC DEF!
  • substr()

从起始索引号提取字符串中指定数目的字符。
stringObject.substr(start,length)。

start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

length:可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。

var str="abc def"
console.log(str.substr(2))//c def
console.log(str.substr(2,4))// c de 
  • substring()

提取字符串中两个指定的索引号之间的字符。
stringObject.substr(start,length)。

start :必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。

stop :可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。

var str="abc def"
console.log(str.substr(2))//c def
console.log(str.substr(2,4))// c de 

Es6新增数组方法

  • 字符串的遍历器接口 for of

for (let codePoint of 'abc') {
  console.log(codePoint)
}
// "a"
// "b"
// "c"
  • includes(), startsWith(), endsWith()

判断一个字符是否包含在另一个字符处
这三个方法都支持第二个参数,表示开始搜索的位置。

**includes()**:返回布尔值,表示是否找到了参数字符串。
**startsWith()**:返回布尔值,表示参数字符串是否在原字符串的头部。
**endsWith()**:返回布尔值,表示参数字符串是否在原字符串的尾部。
let s = 'Hello world!';    
s.startsWith('Hello') // true
s.endsWith('!') // true
s.includes('o') // true
let s = 'Hello world!';    
s.startsWith('world', 6) // true
s.endsWith('Hello', 5) // true
s.includes('Hello', 6) // false

上面代码表示,使用第二个参数n时,endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

  • repeat()

repeat方法返回一个新字符串,表示将原字符串重复n次。

'x'.repeat(3) // "xxx"
'hello'.repeat(2) // "hellohello"
'na'.repeat(0) // ""

参数如果是小数,会被取整。

'na'.repeat(2.9) // "nana"

如果repeat的参数是负数或者Infinity,会报错。

'na'.repeat(Infinity)
// RangeError
'na'.repeat(-1)
// RangeError
  • padStart(),padEnd()

ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。

'x'.padStart(5, 'ab') // 'ababx'
'x'.padStart(4, 'ab') // 'abax'
'x'.padEnd(5, 'ab') // 'xabab'
'x'.padEnd(4, 'ab') // 'xaba'

上面代码中,padStartpadEnd一共接受两个参数,第一个参数用来指定字符串的最小长度,第二个参数是用来补全的字符串。
如果原字符串的长度,等于或大于指定的最小长度,则返回原字符串。

'xxx'.padStart(2, 'ab') // 'xxx'
'xxx'.padEnd(2, 'ab') // 'xxx'

如果用来补全的字符串与原字符串,两者的长度之和超过了指定的最小长度,则会截去超出位数的补全字符串。

'abc'.padStart(10, '0123456789') //'0123456abc'

如果省略第二个参数,默认使用空格补全长度。

'x'.padStart(4) // '   x'
'x'.padEnd(4) // 'x   '

padStart的常见用途是为数值补全指定位数。下面代码生成 10 位的数值字符串。

'1'.padStart(10, '0') // "0000000001"
'12'.padStart(10, '0') // "0000000012"
'123456'.padStart(10, '0') // "0000123456"

另一个用途是提示字符串格式。

'12'.padStart(10, 'YYYY-MM-DD') // "YYYY-MM-12"
'09-12'.padStart(10, 'YYYY-MM-DD') // "YYYY-09-12"
  • matchAll()

matchAll方法返回一个正则表达式在当前字符串的所有匹配

  • 字符串模板

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。-----字符串模板,工作中用到比较多。

1.普通字符串
In JavaScript '\n' is a line-feed.

2.多行字符串,所有的空格和缩进都会被保留在输出之中。如果你不想要这个换行,可以使用trim方法消除它。

console.log(`string text line 1
string text line 2`.trim());
// string text line 1
// string text line 2
$('#list').html(`
<ul>
  <li>first</li>
  <li>second</li>
</ul>
`.trim());

3.嵌入变量,需要将变量名写在${}之中。需要先定义变量

// 字符串中嵌入变量
let name = "Bob", time = "today";
`Hello ${name}, how are you ${time}?`

4.模板字符串之中还能调用函数。

function fn() {
  return "Hello World";
}    
`foo ${fn()} bar`
// foo Hello World bar

5.如果大括号内部是一个字符串,将会原样输出。

`Hello ${'World'}`
// "Hello World"

6.模板字符串甚至还能嵌套。

const tmpl = addrs => `
  <table>
  ${addrs.map(addr => `
    <tr><td>${addr.first}</td></tr>
    <tr><td>${addr.last}</td></tr>
  `).join('')}
  </table>
`;

7.大括号内部可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性。

let x = 1;
let y = 2;

`${x} + ${y} = ${x + y}`
// "1 + 2 = 3"

`${x} + ${y * 2} = ${x + y * 2}`
// "1 + 4 = 5"

let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
// "3"

如果大括号中的值不是字符串,将按照一般的规则转为字符串。比如,大括号中是一个对象,将默认调用对象的toString方法。

8.上面代码中的模板字符串,都是用反引号表示。如果在模板字符串中需要使用反引号,则前面要用反斜杠\转义。

let greeting = `\`Yo\` World!`; // "`Yo` World!"

相关文章

  • JAVA之UUID去掉横线

    方法一(字符串截取) 方法一 方法二(字符串分割) 方法二

  • 字符串格式化,字符串方法

    字符串格式化 方法一 方法二 字符串方法

  • spring工具类最佳实践

    字符串处理函数 StringUtils方法分为三大类: 普通方法 格式化方法 字符串数组方法 常规方法 判定字符串...

  • 8章 对象方法

    本章大纲 字符串的方法 列表的方法 查看python手册 对象方法概念 字符串的方法 count 计算字符串中包含...

  • String 常用方法汇总

    截取字符串 字符串替换 字符串拼接 Stringbuilder 方法 StringJoiner 方法 setEmp...

  • String 字符串常用操作

    indexof()方法 substring() 方法substring() 方法返回字符串的子字符串 replac...

  • 针对ES6的新知识学习

    字符串startsWith()方法 判断字符串string是否是以str开头 字符串endsWith()方法 判断...

  • python字符串

    字符串常用方法 1、首字母大写 capitalize方法 2、字符串替换 replace方法 参数1:老字符串 参...

  • 字符串`trim()`方法的使用

    字符串trim()方法 trim()方法并不影响字符串本身,它返回的是一个新的字符串 trim()方法去除字符串两...

  • iOS - 字符串方法

    删除字符串中的空格 用系统替换字符串方法 字符串分割 字符串分割方法 一字符串是否包含另一字符串 判断方法 大写转...

网友评论

      本文标题:字符串方法

      本文链接:https://www.haomeiwen.com/subject/pkmurctx.html