代码之家  ›  专栏  ›  技术社区  ›  naspy971

javascript-只要找到另一个字符,就在字符串中添加字符

  •  0
  • naspy971  · 技术社区  · 6 年前

    我有一根这样的绳子:

    LE PUY EN VELAY (NIVEAU_SITE)LYON 03 (@A)01AIGLETTE (GEX)
    

    我需要的是修改这个字符串,以便每次它找到字符 ) 它增加了 , 就在那之后。

    看起来是这样的:

    LE PUY EN VELAY (NIVEAU_SITE), LYON 03 (@A), 01AIGLETTE (GEX)
    

    最后一个“)”不必有“,”符号

    4 回复  |  直到 6 年前
        1
  •  2
  •   Mamun    6 年前

    你可以试试 replace() 和regex /\)(?=.*\))/g

    在哪里?

    \) 匹配字符 ) 字面意思

    正面展望 (?=.*\))

    .* 匹配任何字符(行结束符除外)

    var str = "LE PUY EN VELAY (NIVEAU_SITE)LYON 03 (@A)01AIGLETTE (GEX)";
    str = str.replace(/\)(?=.*\))/g,"), ");
    console.log(str);
        2
  •  1
  •   adiga    6 年前

    使用 split join splice

    var a = "LE PUY EN VELAY (NIVEAU_SITE)LYON 03 (@A)01AIGLETTE (GEX)";
    var x = a.split('');
    
    x.forEach(function(e, j) {
      if (e == ')')
        x.splice(j + 1, 1, ',')
    })
    
    x[x.length - 1] = '';
    console.log(x.join(''))
        3
  •  1
  •   Alwaysblue    6 年前

    虽然mamum answer是最优化和干净的,但是如果您不知道正则表达式,您可以这样做

    你可以试试这样的…

    1. 拆分成数组
    2. 映射数组并相应地进行更改(使用if else条件)
    3. 加入阵列

     let str = "LE PUY EN VELAY (NIVEAU_SITE)LYON 03 (@A)01AIGLETTE (GEX)";
    
    str = str.split('').map((el, index) => {
      if (str.length === index + 1) return el
      if (el === ')')  return '),'
      else return el
    })
    console.log(str.join(''));
        4
  •  1
  •   ArUn    6 年前
    const updateString = (str)=>{
    
        str = str.replace(/["')]/g,"),");
        if(str.charAt(str.length -2) == ')' && str.charAt(str.length -1) == ',' ){
    
                    str = str.slice(0, str.length-1);
              }
    
    }