我遇到了一个问题,我正在尝试使用JavaScript中的替换函数,但我无法让它工作。我使用的是:
var pagename = projectname.replace (" ", "");但它只需要第一个空间,我想占据所有的空间。示例:
“我的第一个项目1”= "Myfirstproject1“。
我正在开发google应用程序的脚本。
谢谢。
发布于 2013-08-13 03:22:30
您应该尝试:
var pagename = projectname.replace (/\s/g, '');正则表达式末尾的g是一个标志,它指示replace方法不应该只替换第一次出现的空格字符。
发布于 2019-01-27 17:25:01
您可以在其他函数外部使用此代码。
String.prototype.replaceAll = function(search, replacement) {
var target = this;
return target.replace(new RegExp(search, 'g'), replacement);
};然后就可以使用replaceAll函数了。示例:
var text = "H e l l o W o r l d";
text = text.replaceAll(" " , "");结果: HelloWorld
发布于 2021-02-02 00:03:47
不幸的是,replaceAll在Google AppScript中不可用。您可以使用replace的RegExp版本来实现replaceAll。如果您想创建某种通用解决方案,则需要从特殊RegExp字符转义subject,因为像.^ (和许多其他符号)这样的符号在正则表达式中具有特殊含义。
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中添加它。
if (String.prototype['replaceAll'] == null) {
String.prototype['replaceAll'] = function(search, replacement) {
return strReplaceAll(this, search, replacement)
};
}另外,请注意,$在replaceAll中的替换字符串中有特殊的含义(JavaScript也是如此)。因此,在纯文本到文本替换的情况下,您可能需要额外的函数escapeReplacementString来处理此问题(此函数在JavaScript中也很有用)。
function escapeReplacementString(str) { return str.toString().replace(/\$/g, '$$$&'); }因此,一般文本到文本替换将类似于text.replaceAll(search, escapeReplacementString(replace))
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/
https://stackoverflow.com/questions/18194958
复制相似问题