首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ReplaceAll谷歌脚本

ReplaceAll谷歌脚本
EN

Stack Overflow用户
提问于 2013-08-13 03:18:17
回答 3查看 14.4K关注 0票数 3

我遇到了一个问题,我正在尝试使用JavaScript中的替换函数,但我无法让它工作。我使用的是:

代码语言:javascript
复制
var pagename = projectname.replace (" ", "");

但它只需要第一个空间,我想占据所有的空间。示例:

“我的第一个项目1”= "Myfirstproject1“。

我正在开发google应用程序的脚本。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2013-08-13 03:22:30

您应该尝试:

代码语言:javascript
复制
var pagename = projectname.replace (/\s/g, '');

正则表达式末尾的g是一个标志,它指示replace方法不应该只替换第一次出现的空格字符。

票数 14
EN

Stack Overflow用户

发布于 2019-01-27 17:25:01

您可以在其他函数外部使用此代码。

代码语言:javascript
复制
String.prototype.replaceAll = function(search, replacement) {
        var target = this;
        return target.replace(new RegExp(search, 'g'), replacement);
};

然后就可以使用replaceAll函数了。示例:

代码语言:javascript
复制
var text = "H e l l o W o r l d";    
text = text.replaceAll(" " , "");

结果: HelloWorld

票数 9
EN

Stack Overflow用户

发布于 2021-02-02 00:03:47

不幸的是,replaceAll在Google AppScript中不可用。您可以使用replaceRegExp版本来实现replaceAll。如果您想创建某种通用解决方案,则需要从特殊RegExp字符转义subject,因为像.^ (和许多其他符号)这样的符号在正则表达式中具有特殊含义。

代码语言:javascript
复制
function strReplaceAll(subject, search, replacement) {
  function escapeRegExp(str) { return str.toString().replace(/[^A-Za-z0-9_]/g, '\\$&'); }
  search = search instanceof RegExp ? search : new RegExp(escapeRegExp(search), 'g');
  return subject.replace(search, replacement);
}

我们也可以将它添加到字符串类中,但我建议测试一下是否已经存在,以防在以后版本的Google AppScript中添加它。

代码语言:javascript
复制
if (String.prototype['replaceAll'] == null) { 
  String.prototype['replaceAll'] = function(search, replacement) { 
    return strReplaceAll(this, search, replacement) 
  }; 
}

另外,请注意,$replaceAll中的替换字符串中有特殊的含义(JavaScript也是如此)。因此,在纯文本到文本替换的情况下,您可能需要额外的函数escapeReplacementString来处理此问题(此函数在JavaScript中也很有用)。

代码语言:javascript
复制
function escapeReplacementString(str) { return str.toString().replace(/\$/g, '$$$&'); }

因此,一般文本到文本替换将类似于text.replaceAll(search, escapeReplacementString(replace))

代码语言:javascript
复制
var text = 'Money is +'; search = '+'; replace = '$& and $$';
console.log(text.replaceAll(search, replace)); // gives you 'Money is + and $' [?!]
console.log(text.replaceAll(search, escapeReplacementString(replace))); // gives 'Money is $& and $$'

更多信息:https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll

JSFiggle游乐场:https://jsfiddle.net/r8geycLq/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18194958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档