在rte字段的打字脚本中使用字符串replace/regex


Using string replace/regex in typoscript for an rte field

我想从rte字段中截取除第一段外的所有内容以获取摘录:

20 = HTML
20.value.field = tx_myextention_field
20.value.parseFunc < lib.parseFunc_RTE
20.wrap = <p class="claim-long">|</p>
20.stdWrap.replacement {
  10 {
    search = /^(.*?'/p).*$/m
    replace = '1>
    useRegExp = 1
 }
}

为什么这个正则表达式不起作用?或者有更好的解决方案吗?

您可以使用stdWrap.cropHTML来实现类似的效果。它还将缩短长的第一段,如果第一段太短,则使用多个段落。但在你的情况下,也许这是可取的?

请注意,TYPO3 4.6中不赞成使用HTML cObject。您应该使用TEXT cObject。

我怀疑在您的案例中,parseFunc没有正确应用,因为stdWrap不能用于值,而是直接用于对象。如果没有stdWrap,保存在数据库中的换行符不会转换为<p>标记,因此您的regex无法应用。

我试图修复你的TypoScript(但它未经测试):

20 = TEXT
20.field = tx_myextension_field
20.stdWrap.parseFunc < lib.parseFunc_RTE
20.stdWrap.replacement {
  10 {
    search = /^(.*?'/p).*$/m
    replace = '1>
    useRegExp = 1
 }
}
20.wrap = <p class="claim-long">|</p>