用JavaScript字符串中的单个空格替换多个空格

2020/10/18 21:21 · javascript ·  · 0评论

我的字符串带有多余的空格,每当有多个空格时,我希望它只有一个。

任何人?我尝试搜索Google,但没有任何帮助。

谢谢

像这样:

var s = "  a  b     c  ";

console.log(
  s.replace(/\s+/g, ' ')
)

您可以扩展String以将这些行为实现为方法,如下所示:

String.prototype.killWhiteSpace = function() {
    return this.replace(/\s/g, '');
};

String.prototype.reduceWhiteSpace = function() {
    return this.replace(/\s+/g, ' ');
};

现在,您可以使用以下优雅的形式来生成所需的字符串:

"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra        whitespaces".reduceWhiteSpace();

将正则表达式与replace函数配合使用可达到以下目的:

string.replace(/\s/g, "")

这是一个非正则表达式的解决方案(只是为了好玩):

var s = ' a   b   word word. word, wordword word   ';

// with ES5:
s = s.split(' ').filter(function(n){ return n != '' }).join(' ');
console.log(s); // "a b word word. word, wordword word"

// or ES6:
s = s.split(' ').filter(n => n).join(' '); 
console.log(s); // "a b word word. word, wordword word"

它将字符串按空格分隔,从数组中删除所有空数组项(大于单个空格的项),然后将所有单词再次连接到字符串中,并在它们之间使用单个空格。

我想您是想从字符串的开头和/或结尾去除空格(而不是删除所有空格?

如果是这种情况,则需要这样的正则表达式:

mystring = mystring.replace(/(^\s+|\s+$)/g,' ');

这将从字符串的开头或结尾删除所有空格。如果只想从尾部修剪空格,则正则表达式将改为如下所示:

mystring = mystring.replace(/\s+$/g,' ');

希望能有所帮助。

jQuery.trim()效果很好。

http://api.jquery.com/jQuery.trim/

我知道我不应该在某个主题上发表论文,但是鉴于问题的细节,我通常将其扩展为:

  • 我想用单个空格替换字符串中多次出现的空格
  • ...而且...我不希望在字符串的开头或结尾处留空格(修剪)

为此,我使用这样的代码(第一个regexp的括号是为了使代码更具可读性...除非您熟悉它们,否则regexp可能会很痛苦):

s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');

之所以可行,是因为String对象上的方法返回一个字符串对象,您可以在该对象上调用另一个方法(就像jQuery和其他一些库一样)。如果要连续在单个对象上执行多个方法,则可以使用更紧凑的编码方式。

var x =“ Test Test Test” .split(“”).join(“”); 警报(x);

尝试这个。

var string = "         string             1";
string = string.trim().replace(/\s+/g, ' ');

结果将是

string 1

这里发生的是它将首先使用trim()修剪外部空间,然后使用修剪内部空间.replace(/\s+/g, ' ')

如果要限制用户在名称中提供空格,只需创建一个if语句并指定条件即可。像我一样:

$j('#fragment_key').bind({
    keypress: function(e){
        var key = e.keyCode;
    var character = String.fromCharCode(key); 
    if(character.match( /[' ']/)) {
        alert("Blank space is not allowed in the Name");
        return false;
        }
    }
});
  • 创建一个JQuery函数。
  • 这是按键事件。
  • 初始化变量。
  • 给条件配字
  • 显示匹配条件的警报消息。

这个怎么样?

"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')

输出 "my test string with crazy stuff is cool "

这个也摆脱任何标签

本文地址:http://javascript.askforanswer.com/yongjavascriptzifuchuanzhongdedangekonggetihuanduogekongge.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!