我正在使用 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)
String.prototype.replaceAll() 在这种情况下应该可以正常工作
const test = 'This is : an example'
console.log(test.replaceAll(' : ', ', '));Run Code Online (Sandbox Code Playgroud)
注意 IE不支持此 JavaScript 内置:我可以使用...
作为替代方案,您可以使用全局
//g正则表达式:Run Code Online (Sandbox Code Playgroud)const test = 'This is : an example' console.log(test.replace(/\ :\ /g, ', '));
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |