带有REGEXP_REPLACE的Netsuite自定义字段以剥离HTML代码(回车除外)

时间:2019-03-19 02:11:08

标签: netsuite

我有一个自定义字段,其中包含一些HTML代码:

<h1>A H1 Heading</h1>
<h2>A H2 Heading</h2>
<b>Rich Text</b><br>
fsdfafsdaf df fsda f asdfa f asdfsa fa sfd<br>
<ol><li>numbered list</li><li>fgdsfsd f sa</li></ol>Another List<br>
<ul><li>bulleted</li></ul>

我还有另一个非存储字段,我想使用REGEXP_REPLACE显示以上内容的纯文本版本,同时保留回车符/换行符,甚至可以转换<br>和{{ 1}}至<br/>

然而,与在freemarker中使用?replace(...)相比,NetSuite字段中的模式等似乎有所不同...而且我对记住正则表达式模式很恐惧:)

假设html文本存储在\r\n中,我可以使用哪种表达式作为NetSuite文本区域自定义字段的默认值,以将上面的html代码显示为:

H1标题

H2标题

富文本

fsdfafsdaf df fsda f asdfa f asdfsa fa sfd

等...

我知道项目符号列表或编号列表看起来很糟糕。

我当前的无效公式是:

custitem_htmltext

我也尝试过:

REGEXP_REPLACE({custitem_htmltext},'<[^<>]*>','')-无效

1 个答案:

答案 0 :(得分:0)

使用自定义字段的文本区域类型并输入HTML时,NetSuite似乎将控制字符(“ <”和“>”)更改为HTML实体(“ <”和“>”)。如果输入HTML,然后将字段类型更改为Long Text,则可以看到此信息。

如果将两个字段都更改为“长文本”,然后重新输入数据和公式,则var http2 = require('http2'); var fs = require('fs'); var server = http2.createSecureServer({ key: fs.readFileSync('localhost-privkey.pem'), cert: fs.readFileSync('localhost-cert.pem') }) server.on('error', function (error) { console.error(error) }) server.on('stream', function (stream, headers, body) { var method = headers[':method'] var path = headers[':path'] var body = body || '' console.log(method, path, body) stream.respond({ 'content-type': `text/${type}`, ':status': 200 }) fs.readFile(file, function (error, file) { if (error) file = fs.readFileSync('error.html') return stream.end(file) }) }) server.listen(3443) 应该可以正常工作。