JS字符串的一些方法

250 阅读6分钟

总结一些字符串的方法,分为表格索引和方法详解。其中表格索引按字母顺序排,方法详解按类型归类。方法详解的代码和代码结果以下面形式展示:

console.log("hello,javascript.")

hello,javascript.

表格索引 ——>>点这里直达方法详解

方法描述
charAt()返回指定索引位置的字符
charCodeAt()返回指定索引位置字符的 Unicode 值
concat()连接两个或多个字符串,返回连接后的字符串
fromCharCode()将 Unicode 转换为字符串
indexOf()返回字符串中检索指定字符第一次出现的位置
lastIndexOf()返回字符串中检索指定字符最后一次出现的位置
localeCompare()用本地特定的顺序来比较两个字符串
match()找到一个或多个正则表达式的匹配
replace()用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
search()检索与正则表达式相匹配的值
slice()提取字符串的片断,并在新的字符串中返回被提取的部分
split()把字符串分割为子字符串数组
substr()从起始索引号提取字符串中指定数目的字符
substring()提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase()根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase()根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase()把字符串转换为小写
toString()把一个 Number 或 数组 转换为一个字符串,并返回结果
toUpperCase()把字符串转换为大写
trim()移除字符串首尾空白
valueOf()返回某个字符串对象的原始值

方法详解

1. 获取字符串指定位置的相关值

charAt() : 返回指定索引位置的字符!

var str = "Hello JavaScript"
console.log(str.charAt(6))

J

charCodeAt() : 返回指定索引位置字符的 Unicode 值

var str = "Hello JavaScript"
console.log(str.charCodeAt(6))

74

fromCharCode() : 将 Unicode 转换为字符串

console.log(String.fromCharCode(65))

A

2. 检索字符串

indexOf() : 返回字符串中检索指定字符第一次出现的位置;找不到返回-1;大小写敏感

var str = "hello JavaScript"
console.log(str.indexOf("a"))
console.log(str.indexOf("A"))
//接受第二个参数,代表从这里开始检索
console.log(str.indexOf("a",9))

7
-1
9

lastIndexOf() : 返回字符串中检索指定字符最后一次出现的位置;找不到返回-1;大小写敏感

var str = "hello JavaScript!!"
console.log(str.lastIndexOf("a"))
console.log(str.lastIndexOf("A"))
//接受第二个参数,代表从这里开始倒着检索
console.log(str.lastIndexOf("a",8))

9
-1
7

includes() : 判断字符串是否包含指定的子字符串,结果返回true或false。不支持正则,大小写敏感;

var str = "Hello JavaScript!!"
console.log(str.includes('He'))
console.log(str.includes("he"))
//接受第二个参数,代表开始检索的位置
console.log(str.includes("Java",11))

true
false
false

startsWith() : 检测字符串是否以指定子字符串开始。结果返回true或false。大小写敏感;第二个参数不能是负数

var str = "Hello JavaScript!!"
console.log(str.startsWith('He'))
console.log(str.startsWith("he"))
console.log(str.startsWith("Java"))
console.log(str.startsWith("Java",6))

true
false
false
true

endsWith() : 检测字符串是否以指定子字符串结尾。结果返回true或false。大小写敏感。第二个参数不能是负数

var str = "Hello JavaScript!!"
console.log(str.endsWith('!!'))
console.log(str.endsWith("llo"))
console.log(str.endsWith("llo",5))
console.log(str.endsWith("!",-1))

true
false
true
false

3. 字符串模式匹配、替换

match() : 找到一个或多个正则表达式的匹配

var str = "Hello JavaScript!!"
console.log(str.match("Java"))
console.log(str.match("JAVA"))
console.log(str.match("JavaSss"))
//匹配数字
var str="1 plus 2 equal 3"
//加上代表全局的g,否则只返回一个结果
console.log(str.match(/\d+/g))

[ 'Java', index: 6, input: 'Hello JavaScript!!', groups: undefined ]
null
null
[ '1', '2', '3' ]

search() : 检索与指定字符或正则表达式相匹配的值,返回所在位置。不接受第二个参数

var str = "I like JavaScript best 22333!!"
console.log(str.search("best"))
console.log(str.search(/\d+/g))
//忽略大小写进行匹配。只能返回一个值
console.log(str.search(/[i]+/ig))

18
23
0
小结:search() 方法无法设置第二个开始位置参数。indexOf() 方法无法设置更强大的搜索值(正则表达式)

replace() : 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
stringObject.replace(regexp/substr,replacement)
regexp/substr。必需。想要被替换掉的字符串或正则。replacement。必需。替换文本或生产替换文本的函数。

var str = "Hello JavaScript222333!!"
console.log(str.replace("a","哈"))
console.log(str.replace(/a/,"嘿"))
console.log(str.replace(/a/g,"哈"))
//忽略大小写进行匹配,替换
console.log(str.replace(/javascript/i, "javascript"))
console.log('原字符串:'+str)

Hello J哈vaScript222333!!
Hello J嘿vaScript222333!!
Hello J哈v哈Script222333!! Hello javascript222333!!
原字符串:Hello JavaScript222333!!

//将逗号前后的字母、数字、下划线互换
var name = "Doe1, _John";
console.log(name.replace(/(\w+)\s*,\s*(\w+)/,"$2 $1"))
//将双引号替换为单引号
var name1 = '"a","b"'
console.log(name1.replace(/"([^"]*)"/g, "'$1'"))
//将所有单词的首字母替换为大写
var str = 'aaa bbb ccc'
var firstword = str.replace(/\b\w+\b/g,function(word){
    return word.substring(0,1).toUpperCase()+word.substring(1);
})
console.log(firstword)

_John Doe1
'a','b'
Aaa Bbb Ccc

4. 连接字符串

concat() : 连接两个或多个字符串,返回连接后的字符串

var str1 = "Hello,"
var str2 = "JavaScript"
console.log(str1.concat(str2))

Hello,JavaScript

5. 截取字符串

slice() : 提取字符串两个指定的索引号之间的片断,并在新的字符串中返回被提取的部分。第二个参数可为负数

var str = "Hello JavaScript!!"
//切割下标2到下标8之前的字符串
var newstr1 = str.slice(2,8)
var newstr2 = str.slice(2,-2)
var newstr3 = str.slice(-12,-8)
console.log(newstr1)
console.log(newstr2)
console.log(newstr3)
console.log(str)

llo Ja
llo JavaScript
Java
Hello JavaScript!!

substr() : 从起始索引号提取字符串中指定数目的字符。

var str = "Hello JavaScript!!"
var newstr = str.substr(2,8)
//从下标2处开始切割8个字符
console.log(newstr)
console.log(str)

llo Java
Hello JavaScript!!

substring() : 提取字符串中两个指定的索引号之间的字符。第二个参数不接受负数

var str = "Hello JavaScript!!"
var newstr = str.substring(2,8)
//如果第二个参数比第一个小则调换
var newstr1 = str.substring(8,2)
console.log(newstr)
console.log(newstr1)
console.log(str)

llo Ja
llo Ja
Hello JavaScript!!

6. 分割字符串为数组

split() : 把字符串分割为子字符串数组

var str = "Hello JavaScript!!"
var arr1 = str.split()
var arr2 = str.split("a")
var arr3 = str.split("")
var arr4 = str.split(" ")
console.log(arr1)
console.log(arr2)
console.log(arr3)
console.log(arr4)
console.log(str)

[ 'Hello JavaScript!!' ]
[ 'Hello J', 'v', 'Script!!']
['H', 'e', 'l', 'l', 'o',' ', 'J', 'a', 'v', 'a','S', 'c', 'r', 'i','p','t', '!', '!']
[ 'Hello', 'JavaScript!!' ]
Hello JavaScript!!

7. 去掉字符串首尾空白

trim() : 移除字符串 首尾 空白

var str = "  Hello JavaScript!!   "
var newStr = str.trim()
console.log(newStr)
console.log(str)

image.png

trimStart() : 移除字符串 头部 空白
trimEnd() : 移除字符串 尾部 空白

var str = "   Hello JavaScript!!   "
var strarStr = str.trimStart()
var endStr = str.trimEnd()
console.log(strarStr)
console.log(endStr)
console.log("原字符串:"+str)

image.png

8. 类型转换

toString() : 把一个 Number 或 数组 转换为一个字符串,并返回结果

var num = 123
var str = num.toString()
console.log(str)
console.log(typeof(str))

123
string

valueOf() : 返回某个字符串对象的原始值

var str = "Hello JavaScript!!"
console.log(str.valueOf())

Hello JavaScript!!

9. 字符串的大小写转换

toLowerCase() : 把字符串转换为 toUpperCase() : 把字符串转换为

var str = "HELLO javascript!!"
console.log(str.toLowerCase())
console.log(str.toUpperCase())

hello javascript!!
HELLO JAVASCRIPT!!

toLocaleLowerCase() : 根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase() : 根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射

除了几种特殊语言,否则通常和toLowerCase()与toUpperCase()返回值一样

10. 其他

localeCompare() : 用本地特定的顺序来比较两个字符串 看看w3school的解释吧:www.w3school.com.cn/jsref/jsref…