gpt4 book ai didi

javascript - trim javascript中的值

转载 作者:数据小太阳 更新时间:2023-10-29 06:00:39 26 4
gpt4 key购买 nike

我正在尝试像这样 trim 从剑道编辑器中获得的文本。

var html = "  T  "; // This sample text I get from Kendo editor
console.log("Actual :" + html + ":");
var text = "";
try {
// html decode
var editorData = $('<div/>').html(html).text();
text = editorData.trim();
console.log("After trim :" + text + ":");
}
catch (e) {
console.log("exception");
text = html;
}

此代码位于单独的 js 文件中(从 typescript 生成)。当页面加载时, trim 不起作用。但是当我在开发人员工具控制台窗口中运行相同的代码时,它的工作。为什么它不起作用?

添加 typescript 代码

 const html: string = $(selector).data("kendoEditor").value();
console.log("Actual :" + html + ":");
let text: string = "";
try {
// html decode
var editorData = $('<div/>').html(html).text();
text = editorData.trim();
console.log("After trim :" + text + ":");
}
catch (e) {
console.log("exception");
text = html;
}

最佳答案

  变成 non-break-space character , \u00a0。 JavaScript 的 String#trimsupposed to remove those ,但从历史上看,浏览器的实现在这方面有点问题。我以为这些问题在现代已经得到解决,但是......

如果您遇到的浏览器没有正确实现它,您可以使用正则表达式来解决这个问题:

text = editorData.replace(/(?:^[\s\u00a0]+)|(?:[\s\u00a0]+$)/g, '');

也就是说,要用空字符替换开头和结尾的所有空白字符或非换行符。

但是看了你的评论:

When I run this piece of code separately, it is working fine for me. But in application its failing.

...可能不是这样。

或者,您可以在转换为文本之前删除  标记:

html = html.replace(/(?:^(?:&nbsp;)+)|(?:(?:&nbsp;)+$)/g, '');
var editorData = $('<div/>').html(html).text();
text = editorData.trim();

这会在将标记转换为文本之前删除开头或结尾处的所有  

关于javascript - trim javascript中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37387414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com