我正在嘗試查找并替換字串中的單詞
例子:
let string =
`
Title: Hello World
Authors: Michael Dan
`
我需要找到Hellow World并替換我想要的任何東西,這是我的嘗試:
const replace = string.match(new RegExp("Title:" "(.*)" "Authors:")).replace("Test")
uj5u.com熱心網友回復:
當你替換一些文本時,沒有必要運行String#match或RegExp#exec明確地,String#replace在引擎蓋下進行。
您可以使用
let string = "\nTitle: Hello World\nAuthors: Michael Dan\n"
console.log(string.replace(/(Title:).*(?=\nAuthors:)/g, '$1 Test'));
模式匹配
(Title:)- 第 1 組:Title:固定字串.*- 行的其余部分,除換行符、CR 和 LF 之外的任何零個或多個字符(我們需要使用此文本才能將其洗掉)(?=\nAuthors:)- 與緊跟在 LF 字符和Authors:字串之后的位置匹配的正向前瞻。
請參閱正則運算式演示。
如果您的字串中可以有 CRLF 行結尾,您將需要替換(?=\nAuthors:)為(?=\r?\nAuthors:)或(?=(?:\r\n?|\n)Authors:)。
uj5u.com熱心網友回復:
您最好先轉換為物件,然后再定義 title 屬性:
let string =
`
Title: Hello World
Authors: Michael Dan
`
const stringLines = string.split('\n');
let stringAsObject = {};
stringLines.forEach(
(line) => {
if (line.includes(':')) {
stringAsObject[line.split(':')[0]] = line.split(':')[1];
}
}
);
stringAsObject.Title = 'NewValue';
uj5u.com熱心網友回復:
你可以使用這樣的replace方法:
string.replace("Hello World", "Test");
uj5u.com熱心網友回復:
我可以在沒有正則運算式的情況下實作這一點。您所需要的只是知道需要查找的字串的索引。
var original = `
Title: Hello World
Authors: Michael Dan
`;
var stringToFind = "Hello World";
var indexOf = original.indexOf(stringToFind);
original = original.replace(original.substring(indexOf, indexOf stringToFind.length), "Hey Universe!");
console.log(original)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/378786.html
標籤:javascript 正则表达式 细绳 代替
下一篇:如何從元素陣列回傳到新陣列?
