Javascript Html/纯文本内部文本和特殊字符转义序列动态
我在将值转换为具有以下输入的文本时遇到问题Javascript Html/纯文本内部文本和特殊字符转义序列动态,javascript,jquery,html,Javascript,Jquery,Html,我在将值转换为具有以下输入的文本时遇到问题 var test = '<html>Weight(lb)</html>' $(test) -- Pass var test = 'Weight(lb)' $(test) -- fail var测试='重量(磅)' $(测试)-通过 var测试='重量(磅)' $(测试)-失败 我知道这与转义序列有关,但我如何动态处理它,因为我的测试变量是动态的,可以有任何特殊字符 我的下一个问题是HTML到文本的转换。有没有更好的方法
var test = '<html>Weight(lb)</html>'
$(test) -- Pass
var test = 'Weight(lb)'
$(test) -- fail
var测试='重量(磅)'
$(测试)-通过
var测试='重量(磅)'
$(测试)-失败
我知道这与转义序列有关,但我如何动态处理它,因为我的测试变量是动态的,可以有任何特殊字符
我的下一个问题是HTML到文本的转换。有没有更好的方法可以实现基于html或纯文本的通用函数转换。比如说
var test = '<html>Weight(lb)</html>'
$(test).text() ==> "Weight(lb)"
var test = 'Weight(lb)'
$(test).text() ==> "" expected : "Weight(lb)"
var测试='重量(磅)'
$(测试).text()==>“重量(磅)”
var测试='重量(磅)'
$(测试).text()==>“”应为:“重量(磅)”
无论是纯文本还是HTML文本,我都可以使用什么属性来获得正确的结果。我试图避免写一个if循环来查看id,如果可能的话,它是html或plain,并基于它来写cod
谢谢在我的测试中,$('Weight')
也返回了“”。无论如何,我只需要再次包装该值,这对我来说很有效。这是可行的,因为text()
总是返回您可以读取的未标记文本
$(“+”重量(磅”)+”).text();
如果您参考JQuery文档
它解释了选择器从dom中选择元素。或元素是通过传递有效的HTML创建的
那么,在你的情况下
//This is valid HTML
var test = '<html>Weight(lb)</html>'
$(test) -- Pass
//Not a Valid HTML
var test = 'Weight(lb)'
$(test) -- fail
// Here since $(test) will be undefined
var test = 'Weight'
$(test) -- pass
//这是有效的HTML
var测试='重量(磅)'
$(测试)-通过
//不是有效的HTML
var测试='重量(磅)'
$(测试)-失败
//此处,因为$(test)将是未定义的
var测试='权重'
$(测试)-通过
你的问题有点可疑,但让我以我理解的方式回答
似乎您正试图避免对html文本进行解析
因此,使用良好的旧JAVASCRIPT,函数返回如下:
returnStringLiteral('重量(磅)'
);
事实上,如果您不想做其他事情,Will可能会做这项工作。返回的是什么?$('Weight(lb))返回的是什么?获取“语法错误,无法识别的表达式”为什么会进行下推?我试图避免if循环查看html与否。我为什么要编写额外的函数我更改了文本
//This is valid HTML
var test = '<html>Weight(lb)</html>'
$(test) -- Pass
//Not a Valid HTML
var test = 'Weight(lb)'
$(test) -- fail
// Here since $(test) will be undefined
var test = 'Weight'
$(test) -- pass
function returnStringLiteral(x){
// is what you may be after
return document.createTextNode(x).data;
};
returnStringLiteral('<html>Weight(lb)</html>'
);