【问题标题】:In javascript, how to manipulate a multiline string input by user?在javascript中,如何操作用户输入的多行字符串?
【发布时间】:2014-01-24 15:46:30
【问题描述】:

有问题的代码如下:

  <head>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
    var convert = function(){
        var str = $('#input')[0].value;
        n=str.replace("p","div");
        $("#output")[0].value = n;
    }
    </script>
  </head>
  <body>
  <textarea style="width:600px;height:800px;float:left" id="input"></textarea>
  <textarea style="width:600px;height:800px" id="output"></textarea>
  <button onclick="convert();" style="width:60px;height=40px">convert</button>

我打算使用此代码来获取用户的输入,并将其中的所有“p”替换为“div”。但是,如果输入有多行,则输出将与输入完全相同。所以我开始搜索如何在 javascript 中操作多行字符串。我确实找到了。但它们主要是关于如何使用已知的多行字符串创建一个新的字符串变量,它们都对我的问题没有帮助。

在我看来,用户输入的多行字符串已成功分配给函数中的 str,问题是 str.replace() 无法正常工作。这是因为 str 是一个多行字符串吗?(而且 str 是一个多行字符串(我什至不确定)?)如果是,我怎样才能做到这一点?

【问题讨论】:

  • 顺便说一句,对于您在 Stack Overflow 上发布的任何问题,您似乎都没有接受答案。这是一件好事,还可以奖励您一些声望点!只需单击帖子上您最喜欢的答案左侧的复选标记即可。更多信息在这里:stackoverflow.com/tour

标签: javascript string multiline


【解决方案1】:

您只是在寻找全球替代品吗?

n=str.replace(/p/g,"div");

Live demo here (click). 所有输入到输入中的“p”都会转换为“div”,无论它们在哪一行。

这里有一些关于 str.replace() 的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

【讨论】:

  • 感谢您的快速答复,我第一次接受您。
  • 所以我的代码只是替换了第一次出现的“p”而不是全部。我什至没有意识到这一点,并认为它根本不起作用,因为多行字符串。无论如何,我使用你的代码,它工作得很好。但是这里出现了新问题:我通读了replace()方法的说明,并相应地将我的代码更改为n=str.replace("p","div","g"),但仍然只有第一次出现" p" 正在被替换。什么地方出了错?再次感谢您。
  • 好的。标准 replace() 没有第三个参数,我明白了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 2017-09-15
  • 2019-05-14
  • 1970-01-01
相关资源
最近更新 更多