如何替换字符串中的所有空格

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。 (尽管/(?&lt;=\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 将如何解决它,以帮助其他人理解这个答案

以上是关于如何替换字符串中的所有空格的主要内容,如果未能解决你的问题,请参考以下文章

如何替换掉字符串里的空格?

如何替换掉字符串里的空格?

如何从索引数组中替换字符串中的字符?

如何批量更新 MongoDB 字符串数组以用连字符替换空格?

字符串中的空格替换

空格替换