这让我发疯,我有一个格式的字符串:
<br />
twice<br />
imap Test wrote:<div class="nestedMessage1"><br />
> nested<br />
><br />
> imap@gazler.com wrote:<div class="nestedMessage2"><br />
>> test<br />
>><br />
>> -- <br />
>> Message sent via AHEM.<br />
>> </div><br />
><br /><br /></div>
Run Code Online (Sandbox Code Playgroud)
以下代码:
string = string.replace(/\n/g, "");
string = replaceAll(string, "<br />>", "<br />");
function replaceAll(string, replaceString, replaceWith)
{
return string.replace(new RegExp(replaceString, 'g'),replaceWith);
}
Run Code Online (Sandbox Code Playgroud)
我试图做的是删除<br />>并将其替换为<br />我不能简单地替换所有出现的>因为它们可能包含在行的其他地方,所以我只想删除他们一开始.我已经尝试了转义字符并硬编码正则表达式以显式删除新行,而不是将它们包含在函数调用中.任何帮助,将不胜感激.
如果你的目标只是删除>行开头的所有s,那很容易做到:
var out = in.replace(new RegExp("^>+", "mg"), "");
Run Code Online (Sandbox Code Playgroud)
要么
var out = in.replace(/^>+/mg, "");
Run Code Online (Sandbox Code Playgroud)
该m标志意味着多行,以便^和$匹配行的开头和结尾,而不是仅仅是个开始和结束的字符串.请参见RegExp对象.
编辑:值得一提的是,你应该很可能使用的青睐RegExp对象在第二形式(正则表达式文字).请参阅Are/regex/Literals总是RegExp对象?而为什么正则表达式在JavaScript中全局标志给出错误的结果吗?.
此外,在多次使用的正则表达式文字中如何处理全局标志存在浏览器差异.最好避免使用并明确使用RegExp对象.
| 归档时间: |
|
| 查看次数: |
11137 次 |
| 最近记录: |