javascript-字符串函数-指定位置字符-位置查找-字符串替换-字符串分割

发布于:2023-01-17 ⋅ 阅读:(490) ⋅ 点赞:(0)

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,输出为 newsdadasd

var newData = data.replace(/a/g, 'new')//全局替换
//全局替换,输出为:newsdnewdnewdnewsd

5.字符串分割

split() 方法用于把一个字符串分割成字符串数组。separator意识是分隔器,limit分割数组最大长度。

string.split(separator,limit)

参数 描述
分隔器 可选。字符串或正则表达式,从该参数指定的地方分割 string Object。
限制 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

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.45
console.log(typeof num); // string

方法二:

var num =2.446242342;  
num = Math.floor(num * 100) / 100;
console.log(num); //2.44
console.log(typeof num); // number

方法三:

var num =2.446242342;  
num = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
console.log(num); //2.44
console.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.10
console.log(typeof toDecimal2(3.1415926)); //string

网站公告

今日签到

点亮在社区的每一天
去签到