字符串操作
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