我使用下面的代码片段来截断文本,它工作正常,除非文本包含双引号。
function truncateText(str, len) {
return (str.length > len ? $.trim(str).substring(0, len).split(" ").slice(0,-1).join("") :str);
}
例如: len = 10 str =“helllllllo worlllld” - 工作正常。
但是如果是这样的话:
len = 10 str =“hellllll”o worlllld“ - 没有按预期工作。
我试图做以下事情但没有成功:
str = str.replace('"', '\"');
str = str.replace('"', '"');
str = str.replace('"', '\x22');
答案 0 :(得分:1)
宣言:
var str = "helllll"o world";
无效的javascript。你需要逃避中间报价才能正常运行。
尝试:
var str = "helllll\"o world";
或
var str = 'helllll"o world';
答案 1 :(得分:0)
您可以在javascript函数中尝试此操作
return '"'+str.trim(len).replace('"','')+'"';
我试过这个并且有效。
<input type=button onclick='truncateText("Hello\" world",10)'/>
这给了我Hello世界(没有“inbetween”
答案 2 :(得分:0)
使用以下功能。它可以根据需要使用。
我也改变了truncateText()函数,
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js " type="text/javascript"></script>
<script>
function truncateText(str, len) {
return (str.length > len ? $.trim(str).substring(0, len) : str);
}
var mystr = "helllllll\"o wor\"lllld";
mystr = mystr.replace(/\"/g, '');
alert(truncateText(mystr,10));
</script>
答案 3 :(得分:0)
问题不在javascript函数中,但事实证明我必须在服务器端对返回的字符串执行html解码。