文章目录
1.指定位置字符2.位置查找3.截取子字符串3.1.substring函数3.2.slice函数3.3.substr函数3.4.分割总结4.字符串替换5.字符串分割5.1.通过单一字符将字符串切割成多字符5.2.通过多字符将字符串切割成多字符串5.3.通过字符串将字符串切割成多字符串6.文件和文件夹6.1.分割文件名7.字符串转数字7.1.转整数7.2.转浮点数7.3.转数字8.数字转字符串8.1.直接转字符串8.2.保留小数位转字符串1.指定位置字符
charAt()方法可返回指定位置的字符。charcodeAt() 方法可返回指定位置的字符的 Unicode 编码。
var str = "返回指定位置的字符";var str1 = str.charAt(3);var str2 = str.charCodeAt(3);console.log("返回字符为:"+str1+" 编码:"+ str2);
结果为:返回字符为:定 编码:23450
2.位置查找
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。lastindexof() 从后往前找首次出现的位置。可以用start参数指定初始位置。
string.indexOf(searchvalue,start)
string.lastIndexOf(searchvalue,start)
var str = "heloworld"var str1 = str.indexOf("l");console.log("通过indexOf()查找指定字符串第一次出现的位置的下标:"+str1)var str1 = str.indexOf("l",3);console.log("通过indexOf()查找指定字符串规定字符串查找位置的开始地点,返回出现的位置的下标:"+str1)var str1 = str.indexOf("L");console.log("通过indexOf()查找指定字符串如果字符串不存在,返回-1:"+str1)
结果
通过indexOf()查找指定字符串第一次出现的位置的下标:2
通过indexOf()查找指定字符串规定字符串查找位置的开始地点,返回出现的位置的下标:7
通过indexOf()查找指定字符串如果字符串不存在,返回-1:-1
3.截取子字符串
3.1.substring函数
substring() 方法用于提取字符串中介于两个指定下标之间的字符。substring() 方法返回的子串包括开始处的字符,但不包括结束处的字符。
string.substring(from, to)
var str="Hello world!";console.log(str.substring(3));console.log(str.substring(3,7));
结果
lo world!
lo w
3.2.slice函数
它从start开始,到end结束,开始的位置从0不是1,不包括end,支持数组分割,支持负数,返回数组。
slice(start, end)
var test = 'hello world!'console.log(test.length)console.log(test.slice(1, 9))console.log(test.slice(6))console.log(test.slice(9, 1))console.log(test.slice(-2))console.log(test.slice(0, -2))console.log(test.slice(-4, -2))console.log(test.slice(-2, 4))
①第一个参数比第二个参数大,结果返回空字符串
②传入参数是负数,slice()会先做运算 test.length + 负数参数。
3.3.substr函数
它从start开始,返回length长度字符,开始的位置从0不是1,支持负数,不支持数组。
substr(start, length)
var test = 'hello world!'console.log(test.length)console.log(test.substr(1, 9))console.log(test.substr(6))console.log(test.substr(9, 9))console.log(test.substr(20))console.log(test.substr(-2))console.log(test.substr(-8, 4))console.log(test.substr(-8, 0))console.log(test.substr(-8, -4))console.log(test.substr(-20))
①传入参数超过length返回空字符串
②传入负数,则从字符串的尾部开始算起始位置,-1指最后一个字符,-2指倒数第二个字符;当传入的第一个参数是负数且它的绝对值超过length,这个负数转化为0,当传入的第二个参数是负数,等价于0,截取0个字符,返回空字符串。
3.4.分割总结
js字符串截取三函数,都不会对原始的字符串进行修改,而是返回新的子集。但是三函数各自有各自的个性,面对同一种参数处理的方式都是不一样的。
4.字符串替换
常规的替换只会替换第一次匹配的字符,正则可替换全部。
str.replace(“需要替换的字符串”,“新字符串”)
str.replace(/需要替换的字符串/g,“新字符串”)
const data = 'asdadadasd';var newData = data.replace('a', 'new');//这里是将data里的第一个a替换成new,输出为 newsdadasdvar newData = data.replace(/a/g, 'new')//全局替换//全局替换,输出为:newsdnewdnewdnewsd
5.字符串分割
split() 方法用于把一个字符串分割成字符串数组。separator意识是分隔器,limit分割数组最大长度。
string.split(separator,limit)
5.1.通过单一字符将字符串切割成多字符
var data= “烈日当头已数月有余,天气高温,汗流浃背,不知所言。”;
var str = data.split(‘,’);
结果:
str[0] //烈日当头已数月有余
str[1] //天气高温
str[2] //汗流浃背
str[3] //不知所言。
5.2.通过多字符将字符串切割成多字符串
var data= “外面在下雨,天气真冷,你现在到哪里了呀,我们待会一起吃饭吧。”;
var str = data.split(/在,/);
结果:
str[0] //外面
str[1] //下雨
str[2] //天气真冷
str[3] //你现
str[4] //到哪里了呀
str[5] //我们待会一起吃饭吧。
5.3.通过字符串将字符串切割成多字符串
var data = “abbcaaflajbbcafdfbbcioerfadef”;
var str = data.split(‘bbc’);
结果:
str[0] //a
str[1] //aaflaj
str[2] //afdf
str[3] //ioerfadef
6.文件和文件夹
6.1.分割文件名
//分割文件名function SplitFullFilename(fullFilename) {var dstfullFilename = fullFilename.replace(/\\/g, '/');var dotpos = dstfullFilename.lastIndexOf('.');if (dotpos == -1) {return null;} else {var ext = dstfullFilename.substring(dotpos + 1);var pathAndName = dstfullFilename.substring(0, dotpos);var spos = pathAndName.lastIndexOf('/');var path = pathAndName.substring(0, spos);var filenamenoext = pathAndName.substring(spos + 1);var rlt = [path, filenamenoext, ext];return rlt}}
7.字符串转数字
7.1.转整数
parseInt()将字符串转为整数。
//对二进制、八进制,甚至十进制(默认模式),都可以这样调用parseInt()方法: parseInt("10", 2); //returns 2 parseInt("10", 8); //returns 8 parseInt("10", 10); //returns 10
7.2.转浮点数
parseFloat("22.5"); //returns 22.5
7.3.转数字
Number(value):把给定的值转换成数字(可以是整数或浮点数);
Number(false) 0 Number(true) 1 Number(undefined) NaN Number(null) 0 Number( "5.5 ") 5.5 Number( "56 ") 56 Number( "5.6.7 ") NaN Number(new Object()) NaN Number(100) 100
8.数字转字符串
8.1.直接转字符串
String(value):把给定的值转换成字符串。
8.2.保留小数位转字符串
方法一:
var num =2.446242342; num = num.toFixed(2); console.log(num); //2.45console.log(typeof num); // string
方法二:
var num =2.446242342; num = Math.floor(num * 100) / 100;console.log(num); //2.44console.log(typeof num); // number
方法三:
var num =2.446242342; num = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));console.log(num); //2.44console.log(typeof num); // number
方法四:如果小数点后长度不够,用零补齐
function toDecimal2(x) {//转数值var f = parseFloat(x);if (isNaN(f)) {return false;}//保留两位var f = Math.round(x * 100) / 100;var s = f.toString();var rs = s.indexOf('.');if (rs < 0) {rs = s.length;s += '.';}while (s.length <= rs + 2) {s += '0';}return s;}console.log(toDecimal2(3.1)); // 3.10console.log(typeof toDecimal2(3.1415926)); //string
如果觉得《javascript-字符串函数-指定位置字符-位置查找-字符串替换-字符串分割》对你有帮助,请点赞、收藏,并留下你的观点哦!