JavaScript中常用函数方法(字符串篇)

本文详细介绍JavaScript中字符串的各种操作方法,包括检索、提取、替换等实用技巧,并解释了String对象及原型上的方法用法。

目录

String(obj)

string对象调用的方法

obj.toString()

obj.toLocaleString()

检索字符串中的字符串方法

string.indexOf(str,number)

string.lastIndexOf(str)

string.search(str)

string.match(str)

string.includes(str)

string.startsWith(str)

string.endsWith(str)

提取部分字符串方法

string.slice(start,end)

string.substring(start,end)

string.substr(start,len)

替换字符串内容方法

string.replace(str1,str2)

删除字符串2端的空白字符方法

string.trim()

连接两个或多个字符串方法

string.concat(str1,str2,...,strn)

转换字符串大小写方法

string.toUpperCase()

string.toLowerCase()

提取字符串字符方法

string.charAt(number)

string.charCodeAt(number)

分割字符串为数组方法

string.split(str)

其它

string.repeat(number)

string.padStart(number,str)

string.padEnd(number,str)

String上定义好的静态方法

String.fromCharCode(number1,number2,...,numbern)

正则表达式对象方法和规则

其它字符串对象方法链接

JavaScript中常用函数方法链接(字符串篇)


以下介绍的都是一些本人使用过的字符串的函数方法,用到新的会一直更新,然后注意大小写,其中string代表字符串名使用时用实际名替换的,而String代表系统定义好的在String上的静态函数方法,是不能替换的。

String(obj)

obj为5种基本类型的数据(null,undefined,boolean,number,string)都会转换为原样的字符串返回

obj为数字类型,先隐式调用Number()函数将转换结果再传入String()中(即String(-0)=‘0’并且能识别二、八、十六进制转换为10进制的字符串结果

obj为函数,会将函数的全部内容转换为字符串返回

obj为对象,调用obj.toString方法,根据返回值再调用该方法,不修改系统默认定义好的情况下会返回字符串'[object Object]'

obj为Symbol类型(Symbol('obj')),返回'Symbol(obj)'。

string对象调用的方法

这些方法都是定义在String.prototype上的方法,可以在控制台中直接通过String.prototype打印查看,这些方法在调用时,实际上隐式的new了一个String的对象,该对象继承了String.prototype上的方法,然后在通过对象调用的方法,将方法的返回结果传出来。注意这些方法都不会改变原来的字符串即string的值,只是将新的结果返回,所以一般会新定义变量接收。不管是查找索引替换等,0都是字符串的第一位,都是从0开始的。以下从哪一位开始或到哪一位默认都是包括该位。默认number都只能为正数。

obj.toString()

许多函数的原型上都重写了该方法,例如Array/Number/String/Boolean.prototype等,它会根据obj属于不同的类型调用不同的方法,返回obj对象转化为字符串的结果。

当obj为数字或数字对象时,该函数可以传入一个参数num,obj.toString(num),会将obj的值以默认十进制转化为num进制的字符串数字。注意数字不能后面直接跟.调用,因为无法区分这是小数点还是调用对象的方式,点后加一个空格或再加一个点,只要系统能区分就行。

当obj为数组时,返回值与没有参数的 array.join() 方法返回的字符串相同。

当obj为时间对象时,返回时间戳字符串。

当obj为其它对象,返回'[object Object]'

当obj为其它基本数据类型,返回其字符串形式。

obj.toLocaleString()

返回obj对象转化为字符串的结果。

注意返回时间对象时,2个的格式不同toString的为"Tue Mar 16 2021 15:23:57 GMT+0800 (GMT+08:00)",toLocaleString的为"2021/3/16下午3:23:57"。当为数字时,该方法返回千分位的字符串,即每隔3位加一个逗号,当obj为数组时,返回值和 array.join(',') 方法返回的字符串相同。。

检索字符串中的字符串方法

string.indexOf(str,number)

返回字符串string中从第number+1位开始之后指定文本str首次出现的索引位置,没找到返回-1。str不传返回结果为-1,number不传默认为0。搭配~-1=0,可以用于if判断 。

string.lastIndexOf(str)

返回字符串string中指定文本str最后一次出现的索引位置,没找到返回-1。搭配~-1=0,可以用于if判断 。

string.search(str)

返回字符串string中指定文本第一次出现的索引位置,没找到返回-1。搭配~-1=0,可以用于if判断 。

注意其中str可以传正则表达式全局/g匹配也只会找第一次出现的索引位置

string.match(str)

查找到时:

        如果str为字符串时,返回数组[str],数组上有属性index存放了str第一次在string中出现的索引位置(str为空串也算查找到,index为0),还有属性input和groups,input代表string内容。groups为undefined。

        如果str为正则表达式时,返回数组,加/g时,数组中存放了查找到的字符串和正则表括号匹配的内容。不加/g时该数组还会有index,input,groups属性,含义同上。

未查找到都返回null。

string.includes(str)

判断string字符串中是否包含str字符串,返回true或false注意str为空串时,必为true。

string.startsWith(str)

判断string字符串是否以str开头,返回true或false

string.endsWith(str)

判断string字符串是否以str开头,返回true或false

提取部分字符串方法

string.slice(start,end)

返回字符串string中第start+1位到第end位的字符串内容。

传入负数时加上string.length转换为正数计算。只有一位参数时默认是start的参数。end不传时默认为string.length。无参数时,返回原字符串string

string.substring(start,end)

同上slice方法,注意无法传入负数

string.substr(start,len)

返回字符串string中第start+1位开始的长度为len字符串内容。

start传入负数时加上string.length转换为正数计算。只有一位参数时默认是start的参数。len不传时默认为string.length-start-1。无参数时,返回原字符串string

替换字符串内容方法

string.replace(str1,str2)

返回字符串string中首次出现的str1字符串内容替换成str2字符串后的新字符串。

str1可以传正则表达式,默认情况是对大小写敏感的,且只会替换1次,可通过正则表达式/i和/g修改。不传参数或传一个参数,默认都是返回原字符串。

$1、$2等使用

注意str2中可以用$1、$2等代表str1正则表达式情况的第一个括号、第二个括号等匹配到的内容(如果需要$本身,则需要写成$$)

注意:这里不能对$1进行字符串上的操作比如"$1".toUpperCase(),这样的传入,后面的函数会失效。。

例如下面将名字顺序互换。

var str = "Doe, John";
str.replace(/(\w+), \s*(\w+)/, "$2 $1");
//'John Doe'

str2为function

str2也可以是个function返回字符串(和sort中函数相似),系统会默认给arguments[0]赋值为str1正则表达式匹配内容,arguments[1]赋值为str1正则表达式中的第一个括号匹配内容,依次类推。引用ES9的命名捕获用$<name>。

例如将以下换线开头的第一个字母转换为大写字母

'a_bd_ce'.replace(/_([a-z])/g,(v)=>{return v[1].toUpperCase()})
//'aBdCe'

删除字符串2端的空白字符方法

string.trim()

返回字符串string中开头和结尾无空白字符的新字符串。

相当于string.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '')

连接两个或多个字符串方法

string.concat(str1,str2,...,strn)

返回字符串string和str1,str2,...,strn连接后的新字符串,相当于把他们之间用+号连接。

转换字符串大小写方法

string.toUpperCase()

返回字符串string中所有单词变大写后的新字符串

string.toLowerCase()

返回字符串string中所有单词变小写后的新字符串

提取字符串字符方法

string.charAt(number)

返回字符串中指定下标(位置)的字符

相当于string[number]。不同在于number超出范围时,该方法返回为空字符串,[]返回undefined。

string.charCodeAt(number)

返回字符串汇总指定下标(位置)的字符的unicode编码

number不传时默认为0,超出范围时返回NaN。

分割字符串为数组方法

string.split(str)

返回一个数组,数组中的每一位是字符串string切除str后产生的片段。

如果不传参数或字符串string不包含str,都会返回数组[string]

其它

string.repeat(number)

返回一个字符串,该字符串由重复number次的string组成。

string.padStart(number,str)

如果string字符串不够number长度,则在开头拼接字符串str,直到刚好等于string刚好等于number长度(最后一次拼接不够str长度,则截取str[0]~str[n]再拼接,使其刚好等于)。

string.padEnd(number,str)

同上,不同在于是在结尾拼接。

String上定义好的静态方法

可以在控制台通过String.后查看弹出的方法。

String.fromCharCode(number1,number2,...,numbern)

返回number1,number2,...,numbern在Unicode编码中分别对应的字符拼接成的字符串。

什么都不传时返回空串。

正则表达式对象方法和规则

RegExp对象(js正则表达式使用、修饰符、RegExp对象属性和方法、支持正则表达式的String对象的方法、方括号和括号语法、元字符(单词边界)、量词(正向预查))_AIWWY的博客-CSDN博客

其它字符串对象方法链接

JavaScript String 对象 | 菜鸟教程

JavaScript中常用函数方法链接(字符串篇)

JavaScript中常用函数方法(数组篇)_AIWWY的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值