我有这个格式/\\.br<[0-9]+>\\/g
的regEx,我想在正文中用&lt;&gt;之间指示的新行数替换它。在RegEx。
实施例。输入
Hello \.br<3>\ World!
输出:
Hello
World!
答案 0 :(得分:0)
您的正则表达式/\\.br<[0-9]+>\\/g
不正确。正则表达式上下文中的.
表示“除换行符之外的任何字符”。因此,您需要在正则表达式中转义点。
/\\\.br<[0-9]+>\\/g
/(\\\.br<([0-9]+)>\\)/g
接下来,按照T.J.的推荐,查看String.prototype.replace。克劳德,脑海中浮现出以下解决方案:
function replacer(match, p1, p2, offset, string) {
let result = '';
for (let i = 0; i < Number(p2); i++) {
result += '\n';
}
return result;
}
var newString = String('Hello \\.br<3>\\ World!').replace(/(\\\.br<([0-9]+)>\\)/g, replacer);
console.log(newString);
请注意,代码中的硬编码字符串包含2 \\
,因为这是一个转义字符。当您通过某种文本字段从用户收到字符串时,输入一个\
就足够了。