Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript在HTML中添加换行符_Javascript_Html_Formatting - Fatal编程技术网

如何使用Javascript在HTML中添加换行符

如何使用Javascript在HTML中添加换行符,javascript,html,formatting,Javascript,Html,Formatting,我在一个使用数据源的网站上工作。在该数据源(通过CSV文件输入)中有一段文本。客户端正在以项目符号格式输入文本,并希望将其显示为项目符号格式。例如: 这里的第一点…*第二点…*第三点 (客户端对所有点都使用asterix,这里的文本编辑器将第一个点转换为项目符号) 有人知道我能在第一个asterix之前插入换行符的方法吗,这样就可以显示为列表了?也许用一点javascript 理想情况下,列表将如下所示: <ul> <li>First point here..

我在一个使用数据源的网站上工作。在该数据源(通过CSV文件输入)中有一段文本。客户端正在以项目符号格式输入文本,并希望将其显示为项目符号格式。例如:

  • 这里的第一点…*第二点…*第三点
(客户端对所有点都使用asterix,这里的文本编辑器将第一个点转换为项目符号)

有人知道我能在第一个asterix之前插入换行符的方法吗,这样就可以显示为列表了?也许用一点javascript

理想情况下,列表将如下所示:

<ul>
    <li>First point here... * Second point here... * Third point here...</li>
</ul>
$(function() {
    $('li').each(function() {
        var listItem = $(this),
            text =  listItem.text().replace(/\*/g, '<li>');

        listItem.html(text);
    });
});
  • 这里的第一点
  • 第二点
  • 第三点
提前感谢,


Tom

使用正则表达式可以编写:

input.replace(/\s\*/g, '\n&bull;');
这将用一个从新行开始的项目符号替换所有*前面的空格字符


如果您需要从输入中创建一个真正的HTML标记(如li标记),则必须深入研究regexp。本页是一个很好的起点。

使用正则表达式,您可以编写:

input.replace(/\s\*/g, '\n&bull;');
这将用一个从新行开始的项目符号替换所有*前面的空格字符


如果您需要从输入中创建一个真正的HTML标记(如li标记),则必须深入研究regexp。这个页面是一个很好的起点。

结合您已有的答案,您可以使用正则表达式将星号替换为
  • 。例如:

    HTML

    <div id="output"></div>
    
    
    
    Javascript

    var str = ' * one * two * three';
    str = str.replace(/\s\*/g, '<li>');
    $('#output').html('<ul>'+str+'</ul>');
    
    var str='*1*2*3';
    str=str.replace(/\s\*/g,
  • ); $('#output').html('
      '+str+'
    ');

  • 结合已有答案,可以使用正则表达式将星号替换为
  • 。例如:

    HTML

    <div id="output"></div>
    
    
    
    Javascript

    var str = ' * one * two * three';
    str = str.replace(/\s\*/g, '<li>');
    $('#output').html('<ul>'+str+'</ul>');
    
    var str='*1*2*3';
    str=str.replace(/\s\*/g,
  • ); $('#output').html('
      '+str+'
    ');

  • 好的,我是从你的问题和评论中猜出来的,但是看起来你列表中呈现的html是这样的:

    <ul>
        <li>First point here... * Second point here... * Third point here...</li>
    </ul>
    
    $(function() {
        $('li').each(function() {
            var listItem = $(this),
                text =  listItem.text().replace(/\*/g, '<li>');
    
            listItem.html(text);
        });
    });
    
    • 这里的第一点…*第二点…*第三点
    从您的评论来看,您似乎正在使用jQuery,因此可以执行以下操作:

    <ul>
        <li>First point here... * Second point here... * Third point here...</li>
    </ul>
    
    $(function() {
        $('li').each(function() {
            var listItem = $(this),
                text =  listItem.text().replace(/\*/g, '<li>');
    
            listItem.html(text);
        });
    });
    
    $(函数(){
    $('li')。每个(函数(){
    var listItem=$(此),
    text=listItem.text().replace(/\*/g,
  • ); html(文本); }); });

  • 好的,我是从你的问题和评论中猜出来的,但是看起来你列表中呈现的html是这样的:

    <ul>
        <li>First point here... * Second point here... * Third point here...</li>
    </ul>
    
    $(function() {
        $('li').each(function() {
            var listItem = $(this),
                text =  listItem.text().replace(/\*/g, '<li>');
    
            listItem.html(text);
        });
    });
    
    • 这里的第一点…*第二点…*第三点
    从您的评论来看,您似乎正在使用jQuery,因此可以执行以下操作:

    <ul>
        <li>First point here... * Second point here... * Third point here...</li>
    </ul>
    
    $(function() {
        $('li').each(function() {
            var listItem = $(this),
                text =  listItem.text().replace(/\*/g, '<li>');
    
            listItem.html(text);
        });
    });
    
    $(函数(){
    $('li')。每个(函数(){
    var listItem=$(此),
    text=listItem.text().replace(/\*/g,
  • ); html(文本); }); });

  • 您可以将星号替换为
    li
    (因为它们不需要关闭):
    text.replace(“*”,“
  • ”)创建一个列表(无序的
    )并从所有以asterix开头的文本节点中创建列表项(
  • )。使用CSS进行格式设置,您可以使用选择器
    li:first child
    为第一个列表元素设置不同的样式。
  • 是否也应该有一个结束标记?@user3425760
    li
    的结束标记是可选的:感谢您的建议@Pete,我应该如何在脚本标记中插入它?也许像这样$(document).ready(函数(){text.replace('*','
  • ');});您可以将星号替换为
    li
    (因为它们不需要关闭):
    text.replace(“*”,“
  • ”)创建一个列表(无序的
    )并从所有以asterix开头的文本节点中创建列表项(
  • )。使用CSS进行格式设置,您可以使用选择器
    li:first child
    为第一个列表元素设置不同的样式。
  • 是否也应该有一个结束标记?@user3425760
    li
    的结束标记是可选的:感谢您的建议@Pete,我应该如何在脚本标记中插入它?也许像这样$(document).ready(函数(){text.replace('*','
  • ');});谢谢@Pete,html代码是:

    *这里的第一点…*第二点…*这里的第三点…

    。我已经更新了脚本以关注.property_description,但你知道有没有办法让脚本也添加一个开始和结束
      标记,但只有在使用asterix的情况下?@TomPerkins,我会这样做:但它依赖于星号文本是段落中唯一看起来完美的文本,非常感谢你。如果有什么需要我帮忙的,请告诉我。谢谢@Pete,html代码是:

      *这里的第一点…*第二点…*这里的第三点…

      。我已经更新了脚本以关注.property_description,但你知道有没有办法让脚本也添加一个开始和结束
        标记,但只有在使用asterix的情况下?@TomPerkins,我会这样做:但它依赖于星号文本是段落中唯一看起来完美的文本,非常感谢你。如果有什么需要我帮忙的,请告诉我。