美文网首页
JS字符串常用操作

JS字符串常用操作

作者: _janeplus | 来源:发表于2019-03-29 17:49 被阅读0次
    1.截取
    • substr
      substr(start,length)方法截取字符串(包括start
      start:必需。要抽取的子串的起始下标。必须是数值。如果是负数,那么该参数声明从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
      length: 可选。子串中的字符数。必须是数值。如果省略了该参数,那么返回从 stringObject 的开始位置到结尾的字串。
      如下:从第三位起截取五个字符:
      image.png
    • substring
      substring(start,end)方法用于提取字符串中介于两个指定下标之间的字符。(不包括end
      start,必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。
      end,可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1,如果省略该参数,那么返回的子串会一直到字符串的结尾。
      重要事项:与 slice() 和substr() 不同的是,substring() 不接受负的参数。,如果参数值为负数先转化为0,
      substr()相同的例子,结果却有所不同:
      image.png
    • slice
      slice(start,end)方法 与subtring(start,end)类似,区别是参数可为负数
      对比如下:
      image.png
    2.查找和替换
    • search
      search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,返回第一个与 regexp 相匹配的子串的起始位置,没有找到任何匹配的子串,则返回 -1。
    • match
      match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配,存放匹配结果的数组。该数组的内容依赖于 regexp 是否具有全局标志 g。
    • indexOf / lastIndexOf
      indexOf(searchvalue,fromindex) 方法可返回某个指定的字符串值在字符串中首次出现的位置,没有找到任何匹配的子串,则返回 -1。
      searchvalue:必需。规定需检索的字符串值
      fromindex: 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。
      indexOf() 方法对大小写敏感!
      lastIndexOf(searchvalue,fromindex) 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
      searchvalue:必需。规定需检索的字符串值。
      fromindex:可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0stringObject.length - 1。如省略该参数,则将从字符串的最后一个字符处开始检索。
    • replace
      replace(regexp/substr,replacement)方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,返回一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。(不改变原始字符串
      regexp/substr:必需。规定子字符串或要替换的模式的 RegExp 对象。
      replacement: 必需。一个字符串值。规定了替换文本或生成替换文本的函数。
    3.字符串转换数组(split方法)

    split(separator,howmany),返回一个字符串数组。
    该数组是通过在separator 指定的边界处将字符串 stringObject分割成子串创建的,返回的数组中的字串不包括 separator 自身,但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)
    separator:必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
    howmany:可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。

    4.实用项目场景
    • 根据位置数组,对字符串中的特定字符标色
      方法一:
       // 指定排序的比较函数 
    function compare(property) {
            return function(obj1, obj2) {
                var value1 = obj1[property];
                var value2 = obj2[property];
                return value1 - value2; // 升序
            }
    }
    function drawhighlight(item, posarr) {  
            posarr = posarr.sort(compare("pos")); 
            //es6写法
            /* posarr = posarr.sort((a, b) => {
               return a.pos - b.pos;
            }); */
            var newitem = item;
            for (var i = 0; i < posarr.length; i++) {
                var item2 = posarr[i];
                var pos = item2.pos;
                var len = item2.len;
                var replacestr = "<fonth>" + item.substr(pos, len) + "</fonth>";
                pos += i * 15;
                newitem = newitem.substring(0, pos) + replacestr + newitem.substring(pos + len)
            }
            return newitem;
     }
    

    方法二:....

    s

    相关文章

      网友评论

          本文标题:JS字符串常用操作

          本文链接:https://www.haomeiwen.com/subject/ulfrbqtx.html