目录
freemarker中js里面取字符串,因为换行导致的报错
var data = '${(baseDataDO.content)!}';
浏览器f12控制台
解决:
用浅薄的前端知识尝试多种方法后, 才想到FreeMarker是不是有单独的解决方案
FreeMarker内置命令(字符串命令) js_string, JavaScript 语言规则的字符串转义:
var data = '${(baseDataDO.content)!?js_string}';
加上后成功解决
其他
Java 语言规则的字符串转义:${content?j_string}
JavaScript 语言规则的字符串转义:${content?js_string}
JSON 规则的字符串转义:${content?json_string}
扩展
?substring(from,toExclusive) 截取字符串
?cap_first 将字符串的第一个字母大写
?uncap_first 和cap_first相反
?capitalize:将一个字符串的首字母大写,其他字母全小写
?chop_linebreak:如果一个字符串的末尾有换行,将换行打断;否则不变
?date, ?time, ?datetime:将字符串转换成日期,可提供一个参数指定格式, 例: ?date(‘MM/ddyyyy’)
?ends_with(‘.mp4’):判断字符串是否以指定的字符结尾,如果是返回true;否则返回false
?index_of(‘bc’):返回指定字符在字符串中第一次出现的索引
?index_of(‘bc’,2) 将指定从索引为2的地方开始进行查找匹配字符.如果没有找到将返回-1
?js_string 脱JavaScript语言文字的字符串字符串的转义规则,因此它是安全的插入文本值转换为字符串。
?last_index_of:最后一个匹配的索引
?length:字符串的长度
?lower_case:全部转换为小写
?contains(‘ap’) <#if ‘maple’?contains(‘ap’)>maple</#if>
?number:将String转换为数值
?replace(‘car’,’maple’)
?starts_with:以什么开始,与ends_with向对应
?string:返回字符串
?trim:去掉前后空格
?upper_case:将所有的字母转换为大写,与lower_case向对应