字符串操作

js去除字符串空格

str.replace(/\s/g, '')

去除两边空格

str.replace(/^\s+|\s+$/g, '')
// 原生方法
str.trim()

string强制转换为数字

可以用*1来转化为数字(实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用 a !== a 来判断是否为NaN,因为 NaN !== NaN

'32' * 1            // 32
'ds' * 1            // NaN
null * 1            // 0
undefined * 1    // NaN
1  * { valueOf: ()=>'3' }        // 3

补零

const FillZero = (num, len) => num.toString().padStart(len, "0");
const num = FillZero(169, 5);
// num => "00169"

截取字符串 abcdefg 的 efg

'abcdefg'.substring(4)
'abcdefg'.slice(4)

去除字符串里面的重复字符

[...new Set("ababbc")].join(""); // "abc"

判断一个字符串中出现次数最多的字符,统计这个次数

  • 将字符串转化数组
  • 创建一个对象
  • 遍历数组,判断对象中是否存在数组中的值,如果存在值 +1,不存在赋值为 1
  • 定义两个变量存储字符值,字符出现的字数
var str = 'abaasdffggghhjjkkgfddsssss3444343';
// 1.将字符串转换成数组
var newArr = str.split("");
// 2.创建一个对象
var json = {};
// 3. 所有字母出现的次数,判断对象中是否存在数组中的值,如果存在值 +1,不存在赋值为 1
for (var i = 0; i < newArr.length; i++) {
    // 类似:json : { ‘a’: 3, ’b’: 1 }
    if (json[newArr[i]]) {
        json[newArr[i]] += 1;
    } else {
        json[newArr[i]] = 1;
    }
}
// 4 定义两个变量存储字符值,字符出现的字数
var num = 0; //次数
var element = ""; //最多的项
for (var k in json) {
    if (json[k] > num) {
        num = json[k];
        element = k;
    }
}
console.log("出现次数:" + num + "最多的字符:" + element);

编写一个方法,求一个字符串的字节长度

假设:一个英文字符占用一个字节,一个中文字符占用两个字节

function getBytes(str) {
    var len = str.length;
    var bytes = len;
    for (var i = 0; i < len; i++) {
        if (str.charCodeAt(i) > 255) bytes++;
    }
    return bytes;
}
alert(getBytes("你好,as"));

反转一个字符串

let a = "hello word";
let b = [...str].reverse().join(""); // drow olleh
function reverse(str){
    for(let i = 0; i < str.length; i++){
        return str.split('').reverse().join('');
    }
}

使用解构语法去得到输入的str字符串的长度,并将长度赋值给len

const getLength=(str)=>{
    const {length:len} = str;
    return len;
}
getLength('FreeCodeCamp') //12