目录
string.concat(str1,str2,...,strn)
String.fromCharCode(number1,number2,...,numbern)
以下介绍的都是一些本人使用过的字符串的函数方法,用到新的会一直更新,然后注意大小写,其中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编码中分别对应的字符拼接成的字符串。
什么都不传时返回空串。
本文详细介绍JavaScript中字符串的各种操作方法,包括检索、提取、替换等实用技巧,并解释了String对象及原型上的方法用法。
&spm=1001.2101.3001.5002&articleId=114125693&d=1&t=3&u=c30343677ada4d0682f609ad12087c06)
1201

被折叠的 条评论
为什么被折叠?



