封装一个获取字符串刮号内的字符方法

最近做项目的时候有一处对接收的json数据做截取字符的逻辑,主要是获取关于字符串内部带有刮号()的字符内容,所以就简单的封装了下相关方法,该方法适合匹配以下几个符号:() 、[] 、<> 、《》、 “”、 ‘’、〔〕、{}、「」、〖〗等相关带有闭合的符号。具体应用方式如下:



    
        
        字符串截取刮号内部字符方法封装
    
    
    
    

该函数strIn()参数1为要截取的字符串,参数2为需要指定截取的刮号符号。


123.png

还有一种更简单的方法,就是直接利用正则表达式的match方法来截取,简单粗暴,代码如下:



    
        
        字符串截取刮号内部字符方法封装
    
    
    
    


最近有网友根据正则,利用了es6的新属性(箭头函数,const声明等)又对该方法做了简化:

function getMarkContent (str, start, end) {
  const arr = str.match(new RegExp(`\\${start}[^${end}]+\\${end}`, 'g'))
  return !arr ? [] : arr.map(item => item.replace(new RegExp(`\^\\${start}|\\${end}\$`, 'g'), ''))
}

const testStr = '0  (a)  12  ((((b)  3456  (c(() ';
console.log(getMarkContent(testStr, '(', ')')); // -> ["a", "(((b", "c(("]

你可能感兴趣的:(封装一个获取字符串刮号内的字符方法)