如何替换字符串中的所有空格
Posted
技术标签:
【中文标题】如何替换字符串中的所有空格【英文标题】:How to replace all spaces in a string 【发布时间】:2013-11-21 06:51:58 【问题描述】:我有两个 html 文本输入,除此之外,用户在第一个文本框中输入的内容需要反映在第二个文本框中,同时反映它应该将所有空格替换为分号。我做了一些现存的,它不是全部替换第一个空间,我想我需要使用 Jquery 的 .each 函数,我使用了 .each 函数但我没有得到结果see this
HTML:
Title : <input type="text" id="title"><br/>
Keyword : <input type="text" id="keyword">
jquery:
$('#title').keyup(function()
var replaceSpace = $(this).val();
var result = replaceSpace.replace(" ", ";");
$("#keyword").val(result);
);
谢谢。
【问题讨论】:
Replacing spaces with underscores in javascript?的可能重复 这能回答你的问题吗? How to replace all occurrences of a string? 【参考方案1】:var result = replaceSpace.replace(/ /g, ";");
这里,/ /g
是一个正则表达式(正则表达式)。标志g
表示全局。它会导致替换所有匹配项。
【讨论】:
另外值得注意的是:使用/ +/g
仅用一个分号替换空格。使用/\s/g
替换所有空白字符。使用/\s+/g
替换所有运行的空白。
或者你可以这样做:$("#keyword").val($(this).val().split(' ').join(';'));
如果你想(无论出于何种原因)避免正则表达式
@Kay 的编辑 (jsfiddle.net/pLmv7) 可能是最好的方法,它可以轻松处理多个空格,只生成一个分号
在应用替换之前,您可能会使用replaceSpace.trim()
。 trim() 去除前导和尾随空格。
@JasonSperske,您可以将其更改为 /\s+(?=\S)/g
。 (尽管/(?<=\S)\s+(?=\S)/g
可以用于开头和结尾。)现在您可以再次喜欢正则表达式了。【参考方案2】:
纯 Javascript,没有正则表达式:
var result = replaceSpacesText.split(" ").join("");
【讨论】:
与正则表达式相比,速度有什么不同吗? 经过测试 - 没有性能差异,至少值得关注。【参考方案3】: $('#title').keyup(function ()
var replaceSpace = $(this).val();
var result = replaceSpace.replace(/\s/g, ";");
$("#keyword").val(result);
);
由于javascript的replace函数不替换'all',我们可以利用正则表达式进行替换。根据您的需要,我们必须全局替换所有空格,即字符串中的 \s。正则表达式后面的 g 字符代表全局替换。第二个参数将是替换字符,即分号。
【讨论】:
虽然此代码可能会回答问题,但提供有关它如何和/或为什么解决问题的额外上下文将提高答案的长期价值。 @badacadabra 已更新 :)【参考方案4】:替换所有空格的简单代码
var str = 'How are you';
var replaced = str.split(' ').join('');
输出: 你好
【讨论】:
【参考方案5】:非常简单:
只需使用它来将所有空格 替换为
-
:
myString.replace(/ /g,"-")
【讨论】:
【参考方案6】:处理多个空格并将其替换为单个字符
myString.replace(/\s+/g, "-")
http://jsfiddle.net/aC5ZW/340/
【讨论】:
【参考方案7】:我也遇到过这个问题,对我来说这很有效(涵盖大多数浏览器):
myString.replace(/[\s\uFEFF\xA0]/g, ';');
在遇到一些颠簸后受到此修剪 polyfill 的启发: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill
【讨论】:
【参考方案8】:您可以执行以下修复以删除带有修剪和 @ 符号的空格:
var result = string.replace(/ /g, ''); // Remove whitespaces with trimmed value
var result = string.replace(/ /g, '@'); // Remove whitespaces with *@* symbol
【讨论】:
请在您的回答中描述问题是什么,以及这个 sn-p 将如何解决它,以帮助其他人理解这个答案以上是关于如何替换字符串中的所有空格的主要内容,如果未能解决你的问题,请参考以下文章