【问题标题】:easy way to remove all enter marks删除所有输入标记的简单方法
【发布时间】:2021-06-22 10:00:55
【问题描述】:

我从此页面获得的以下代码按预期工作。

How can I replace newlines/line breaks with spaces in javascript?

var words = "car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent";
document.body.innerHTML = "<pre>OLD:\n" + words + "</pre>";
var new_words = words.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g," ");
document.body.innerHTML += "<pre>NEW:\n" + new_words + "</pre>";

但在我的例子中,words 变量只不过是表单中的文本,我正在寻找一种将这个脚本转换为书签的方法。小书签代码与常规代码有何不同?

【问题讨论】:

  • 您能分享一个表单示例以及“表单中的文本”在上下文中的含义吗?

标签: bookmarklet


【解决方案1】:

为方便起见,第一行只是在 textarea 中初始化值。

document.querySelector('textarea').value =
  'car\r\n\r\nhouse\nhome\rcomputer\ngo\n\nwent';

function replace() {
  const textarea = document.querySelector('textarea');

  textarea.value = textarea.value
    .replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g, ' ');
}
<textarea cols="50" rows="10"></textarea>

<button onclick="replace();">Replace</button>

书签

javascript: {
  const textarea = document.querySelector('textarea');

  void (textarea.value = textarea.value
    .replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g, ' '));
}

Bookmarklet 拖到书签:

&lt;a href="javascript: {const textarea = document.querySelector('textarea'); void (textarea.value = textarea.value.replace(/[\r\n\x0B\x0C\u0085\u2028\u2029]+/g, ' '));}"&gt;Bookmarklet&lt;/a&gt;

【讨论】:

  • 但这似乎不适用于 wiki 页面的“页面正文”部分。 en.wikisource.org/w/…
  • @shantanuo 那里有一些文本区域,所以您需要使用更具体的选择器来获取“页面正文”之一:const textarea = document.querySelector('textarea#wpTextbox1');
【解决方案2】:

尝试将words 声明替换为

var words = document.querySelector("textarea").value;

获取页面上第一个 textarea 元素的文本内容。 HTMLTextAreaElements 有一个 value 属性来访问他们的文本内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 2011-11-12
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多