使用特定长度的JavaScript / Google Script查找并替换所有字符串

时间:2017-04-27 20:16:14

标签: javascript regex google-chrome-extension

我是一名JavaScript / GoogleScript新手,所以请耐心等待。我正在尝试在Google Docs中创建一个脚本,该脚本能够找到所有包含10个字符的单词实例,并在其中附加一个元素,这样就会给我一个网址。

示例:这是我的链接菠萝

我想找到10个字符串,即菠萝,并在每个长度为10的字符串前添加google.com/。

给我"这是我的链接google.com/pineapples。"

function myFunction() {
var str = document.getElementById(str.length=10); 
var res = str.replace("str.length=10", "br"+"str.length=10");

这似乎完全错了,但我现在所能提出的所有内容。

3 个答案:

答案 0 :(得分:0)

这是一个可能的解决方案:

  1. 拆分字符串,使用空格作为分隔符(这将为您提供数组)
  2. 测试循环中每个部分的长度
  3. 前缀google.com/ 如果某个部分有10个字符
  4. 加入您的数组并享受您的变换后的字符串
  5. var str = "Here is my link pineapples",
        arr = str.split(' ');
        
    for (var i = 0; i < arr.length; i++) {
      if (arr[i].length === 10) {
        arr[i] = 'google.com/' + arr[i];
      }
    }
    
    console.log(arr.join(' '));

答案 1 :(得分:0)

您可以使用正则表达式然后使用反向引用来引用匹配组。

正则表达方式: (\S{10}) 它有3个部分

  1. \S匹配空格,制表符或换行符以外的任何内容。
  2. {10}恰好匹配上述字符10次。
  3. ()是捕获组,稍后在正则表达式$1中使用。
  4. 您可以获得更多信息here,详细解释上述正则表达式。

    您可以根据自己的需要进行更改。

    &#13;
    &#13;
    var stringVal = "Here is my link pineapples";
    var stringReplaced = stringVal.replace(/(\S{10})/, "google.com/$1");
    console.log(stringReplaced);
    &#13;
    &#13;
    &#13;

答案 2 :(得分:-1)

好的,请耐心等待,但我的想法如下: 您要替换的文本是否都在同一个类的元素中?如果是这样,你可以做这样的事情(jQuery希望你不介意)

function myFunction(){
  $('myClass').each(function(){
    var innerText = $(this).text();
    var substring = innerText.substr(0,9);
    $(this).text(substring);
  }
}