在javascript中使用双引号截断文本

在javascript中使用双引号截断文本,javascript,Javascript,我使用下面的代码片段截断文本,它工作正常,除非文本包含双引号 function truncateText(str, len) { return (str.length > len ? $.trim(str).substring(0, len).split(" ").slice(0,-1).join("") :str); } 例如: len=10 str=“helllllo worllld”-工作正常 但在这种情况下: len=10 str=“hellllll”o worllld”-

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

function truncateText(str, len) {
return (str.length > len ? $.trim(str).substring(0, len).split(" ").slice(0,-1).join("") :str);   
}
例如: len=10 str=“helllllo worllld”-工作正常

但在这种情况下:

len=10 str=“hellllll”o worllld”-未按预期工作

我尝试了以下几点,但都没有成功:

str = str.replace('"', '\"');
 str = str.replace('"', '&quot');
 str = str.replace('"', '\x22');
宣言:

var str=“helllll”o world”

是无效的javascript。您需要转义中间的引号才能正常运行

尝试:

var str=“helllll\”o world”

var str='helllll“o world'

声明:

var str=“helllll”o world”

不是有效的javascript。您需要转义中间引号才能正常运行

尝试:

var str=“helllll\”o world”


var str='helllll“o world';

您可以在javascript函数中尝试这一点

return '"'+str.trim(len).replace('"','')+'"';  
我试过了,它成功了

<input type=button onclick='truncateText("Hello\" world",10)'/>


这给了我Hello world(没有“中间人”)

您可以在javascript函数中尝试此功能

return '"'+str.trim(len).replace('"','')+'"';  
我试过了,它成功了

<input type=button onclick='truncateText("Hello\" world",10)'/>


这给了我Hello world(没有“中间人”)

使用下面的函数。它可以根据您的需要使用。
我也更改了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>

函数truncateText(str,len){
返回(str.length>len?$.trim(str).substring(0,len):str);
}    
var mystr=“helllllll\”o wor\“lld”;
mystr=mystr.replace(/\“/g'”);
警报(truncatext(mystr,10));

使用以下功能。你想用什么就用什么
我也更改了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>

函数truncateText(str,len){
返回(str.length>len?$.trim(str).substring(0,len):str);
}    
var mystr=“helllllll\”o wor\“lld”;
mystr=mystr.replace(/\“/g'”);
警报(truncatext(mystr,10));


问题不在javascript函数中,但事实证明我必须在服务器端对返回字符串进行html解码。

问题不在javascript函数中,但事实证明我必须在服务器端对返回字符串进行html解码。

这只是一个示例,在我的真实代码中,我不知道是什么是str的值,因为它是可以更改的变量。当使用truncateText(“helllll\“o world”,10)调用函数时,您希望得到什么输出?不按预期工作意味着例如:len=15;str1='home-did-go'-result:'home-did-go'str2='hom“e-home'-result:'hom”e'OK,但是第二个示例的结果应该是'hom'“e-home”,对吗?你的功能对我来说就像预期的一样。您是否看到任何javascript错误?这只是一个示例,在我的实际代码中,我不知道str的值是多少,因为它是可以更改的变量。当使用truncateText(“helllll\“o world”,10)调用函数时,您期望的输出是什么?不按预期工作意味着例如:len=15;str1='home-did-go'-result:'home-did-go'str2='home“e-home'-result:'hom“e”OK,但第二个示例的结果应该是'hom“e-home',对吗?您的函数对我来说是按预期工作的。您是否看到任何javascript错误?未按预期工作意味着:len=15;str1='home-did go'-result:'home-did go'str2='hom“e-home'-result:'hom“e”what将“它未按预期工作”确切地指-您期望的是什么,实际输出是什么?未按预期工作意味着例如:len=15;str1='home-did-go'-result:'home-did-go'str2='home“e-home'-result:'hom“e”what't't't not working as expected”确切地指的是-您期望的是什么,实际的输出是什么?但是我想显示quoets。好的,那么您可以在返回字符串return'+str.trim(len)。replace('','')+'"';但是我想显示quoets.ok,那么您可以在返回字符串return''+str.trim(len).replace(''','')+''之前添加引号;