在javascript中用双引号截断文本

时间:2012-01-04 07:23:54

标签: javascript

我使用下面的代码片段来截断文本,它工作正常,除非文本包含双引号。

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('"', '&quot');
 str = str.replace('"', '\x22');

4 个答案:

答案 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解码。