替换 Javascript 中空格之间的冒号

Onc*_*ime 1 javascript

我正在使用 Javascript 来操作 ZOTERO 中的项目。

我有多个项目,其标题包含" : "(空格之间的冒号)。

我想用", "(逗号和空格)替换它。

例如:

This is : an example
Run Code Online (Sandbox Code Playgroud)

应该

This is, an example
Run Code Online (Sandbox Code Playgroud)

谁能告诉.replace我代码中的语句是否正确?

var fieldName = "title";
 
var fieldID = Zotero.ItemFields.getID(fieldName);
var s = new Zotero.Search();
s.libraryID = ZoteroPane.getSelectedLibraryID();
s.addCondition(fieldName, 'contains', '  ');
var ids = await s.search();
if (!ids.length) {
    return "No items found";
}
await Zotero.DB.executeTransaction(async function () {
    for (let id of ids) {
        let item = await Zotero.Items.getAsync(id);
        let mappedFieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(item.itemTypeID, fieldName);
        let fieldID = mappedFieldID || fieldID;
        item.setField(fieldID, item.getField(fieldID).replace(/[\s:\s]/g, ', '));
        await item.save({
            skipDateModifiedUpdate: true
        });
    }
});
return ids.length + " item(s) updated";
Run Code Online (Sandbox Code Playgroud)

0st*_*ne0 6

String.prototype.replaceAll() 在这种情况下应该可以正常工作

const test = 'This is : an example'
console.log(test.replaceAll(' : ', ', '));
Run Code Online (Sandbox Code Playgroud)

注意 IE不支持此 JavaScript 内置:我可以使用...

作为替代方案,您可以使用全局//g 正则表达式

const test = 'This is : an example'
console.log(test.replace(/\ :\ /g, ', '));
Run Code Online (Sandbox Code Playgroud)