我正在尝试为两个Markdown解析器实现中心对齐:
我遵循并找到最简单的方法是使用最终的HTML输出,并且只需将内联样式捕捉到标签上即可。
以下正则表达式可以满足我的需要,它可以style="text-align:center;"
根据需要添加到到目前为止的所有元素中*:
$text = preg_replace('/\<(.*?)\>\->(.*?)<\-\<\/(.*?)\>/', '<$1 style="text-align:center;">$2</$3>', $text);
即,<p>text</p>
变为<p style="text-align:center;">text</p>
。
但是,当我尝试将其移植到JavaScript中以使其也可以在客户端进行预览时,该模式与应有的模式不匹配:
content = content.replace('/\<(.*?)\>\->(.*?)<\-\<\/(.*?)\>/', '<$1 style="text-align:center;">$2</$3>');
content
不会发生替换。
我知道PHP和JavaScript的Regex之间有细微的差别,但是我在这里都发现了双方都能正常工作的示例。
*如果有人想知道,我还将成功地将中心对齐方式添加到已经具有样式属性的标签中-到目前为止,仅在服务器端。
您需要将文字语法用于JavaScript中的正则表达式,如下所示:
content = content.replace(/\<(.*?)\>\->(.+)<\-\<\/(.+)\>/gi, '<$1 style="text-align:center;">$2</$3>');
请注意,gi
在正则表达式的末尾仅启用全局搜索(即,替换所有与模式匹配的匹配项)和不区分大小写的匹配。从技术上来说,它们都是可选的,但是您很可能g
肯定希望启用该标志。但是,保留i
标志取决于您(例如,取决于您的内容是否包含>
)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句