我正在尝试用 JavaScript 中的正则表达式替换字符串的某些部分,但前提是它们没有包含在{{{
and}}}
中。
我目前使用的系统会进行多个字符串替换,并将替换内容包含在这些括号中。因此,如果我用星期几(比如说星期四)替换“h”,替换将输出"{{{Thursday}}}"
. 如果替换再次发生,则字符串最终将变为"{{{T{{{Thursday}}}ursday}}}"
星期四中的“h”已被替换。
我正在寻找的是一个正则表达式模式,它将替换“h”,但前提是它不包含在{{{
and}}}
包装器中。
提前致谢 :)
编辑:
这是一些示例代码。每个替换都包含在括号中,正则表达式模式使用 (?!{{{) 和 (?!}}}) 以避免过去的替换。
var string = 'n d m y',
dayTextRegex = /(?!{{{)n(?!}}})/g,
dayRegex = /(?!{{{)d(?!}}})/g,
monthRegex = /(?!{{{)m(?!}}})/g,
yearRegex = /(?!{{{)y(?!}}})/g;
string = string.replace(dayTextRegex, '{{{Monday}}}');
string = string.replace(dayRegex, '{{{04}}}');
string = string.replace(monthRegex, '{{{June}}}');
string = string.replace(yearRegex, '{{{2012}}}');
//string is now equal to "{{{Mon{{{04}}}ay}}} {{{04}}} {{{June}}} {{{2012}}}"