【基础篇】js常用函数

一、字符串替换方法

1. str.replace()
str.replace(“需要替换的字符串”,“新字符串”), 这个只替换第一个查找到的字符;
str.replace(/需要替换的字符串/g,“新字符串”) 这个全局替换查找到的字符

"yyyy-MM-dd-hh-mm-ss".replace("-","/")	//结果"yyyy/MM-dd-hh-mm-ss"

"yyyy-MM-dd-hh-mm-ss".replace(/-/g,"/")	//结果"yyyy/MM/dd/hh/mm/ss"

二、字符串查找方法

1. indexOf()
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有找到,则该方法返回 -1。

var str = "123";
console.log(str.indexOf("3") != -1 ); // true

2. includes()
includes() 方法用于判断字符串是否包含指定的子字符串,如果找到匹配的字符串则返回 true,否则返回 false。注意: includes() 方法区分大小写。

var str = "Hello world, welcome to the Runoob。";
var n = str.includes("world"); //true

3. search()
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。如果匹配到字符串则返回,字符串所在索引。

var str="Visit W3School!"
console.log(str.search(/W3School/)) //6
 
var str="Visit W3School!"
console.log(str.search('W3School')) //6

4. match()
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。注意:match() 方法区分大小写。

var str="The rain in SPAIN stays mainly in the plain";
var n=str.match(/ain/g); // ain,ain,ain

5. test()
test() 方法用于检测一个字符串是否匹配某个模式。如果字符串中有匹配的值返回 true ,否则返回 false。

if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
    console.log("移动")
} else {
    console.log("PC")
}
 
var str="Hello world!";
//查找"Hello"
var patt=/Hello/g;
var result=patt.test(str);
console.log(result) // true

6. exec()
exec() 方法用于检索字符串中的正则表达式的匹配。如果字符串中有匹配的值返回该匹配值,否则返回 null。

var str="Hello world!";
//查找"Hello"
var patt=/Hello/g;
var result=patt.exec(str);
console.log(result) // Hello

7. 综合

/**
 * 格式化函数 , 给日期格式化
 * date为 new Date()对象, fmt为 'yyyy-MM-dd hh:mm:ss'的格式
 */
function formatDate(date, fmt) {
  //获取年份
  if (/(y+)/.test(fmt)) {
    // 把数字变成字符串
    let dateY = date.getFullYear() + "";
    //RegExp.$1 在判断中出现过,且是括号括起来的,所以 RegExp.$1 就是 "yyyy"
    fmt = fmt.replace(RegExp.$1, dateY.substr(4 - RegExp.$1.length));
  }

  //获取其他
  let o = {
    "M+": date.getMonth() + 1,
    "d+": date.getDate(),
    "h+": date.getHours(),
    "m+": date.getMinutes(),
    "s+": date.getSeconds(),
  };
  for (const k in o) {
    if (new RegExp(`(${k})`).test(fmt)) {
      let str = o[k] + "";
      fmt = fmt.replace(
        RegExp.$1,
        RegExp.$1.length == 1 ? str : padLeftZero(str)
      );
    }
  }
  return fmt;
}

function padLeftZero(str) {
  return ("00" + str).substr(str.length);
}

三、字符串分割方法

1. split()
split() 方法用于将字符串分隔为一个字符串数组,该方法和数组的 join() 互为逆运算。split() 方法在分隔符指定的边界处将字符串 str 进行分隔,返回的数组中的字符串不包括分隔符自身。需要注意的是,如果分隔符为空字符串’',则 str 字符串中的每个字符之间都会被分割。该方法可以指定两个参数,第 1 个参数为分隔符,指定从哪儿进行分隔的标记;第 2 个参数指定要返回数组的长度。(第2个参数一般不使用)

var str = "Hello,can I help you?";
alert(str.split(","));//使用,作为分隔符,输出:["Hello","can I help you?"]
alert(str.split(' '));//使用空格字符串作为分隔符,输出:["Hello,can", "I", "help", "you?"]
alert(str.split(''));//使用空字符串作为分隔符,输出:["H","e","l","l","o",",","c","a","n","
                       //","I"," ","h","e","l","p"," ","y","o","u","?"]
alert(str.split('can'));//使用"can"字符串作为分隔符,输出:["Hello,", " I help you?"]

特殊|es6的新方法

1. Object.values(str)
Object.values()将返回的value组成一个数组,返回一个给定对象自身的所有可枚举属性值的数组,值的顺序与使用for…in循环的顺序相同 ( 区别在于 for-in 循环枚举原型链中的属性 )。
2. Array.from(str)
Array.from() 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例

console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([1, 2, 3], x => x + x));
// expected output: Array [2, 4, 6]

3. Array.from(str)
对象中的扩展运算符(…)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中。

let str="abcde"
[...str]//["a", "b", "c", "d", "e"]
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值