Replace multiple whitespaces with single whitespace in JavaScript string
我有带额外空格的字符串,每次有不止一个空格时,我希望只有一个。
有人吗?我试着搜索谷歌,但没用。
谢谢
像这样:
1 2 3 4 5 | var s =" a b c "; console.log( s.replace(/\s+/g, ' ') ) |
您可以增加字符串,以实现这些行为作为方法,如:
4现在,您可以使用以下优雅的形式生成所需的字符串:
1 2 | "Get rid of my whitespaces.".killWhiteSpace(); "Get rid of my extra whitespaces".reduceWhiteSpace(); |
在replace函数中使用正则表达式可以做到:
1 | string.replace(/\s/g,"") |
这里有一个非regex解决方案(只是为了好玩):
1 2 3 4 5 6 7 8 9 | 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" |
它按空白分割字符串,从数组中删除所有空的数组项(多于一个空格的项),并将所有单词重新连接成一个字符串,其中有一个空白。
我猜你是想从字符串的开始和/或结束处删除空格(而不是删除所有空格)?
如果是这样的话,你需要一个像这样的正则表达式:
1 | mystring = mystring.replace(/(^\s+|\s+$)/g,' '); |
这将删除字符串开头或结尾的所有空格。如果只想从结尾处修剪空格,则regex将如下所示:
1 | mystring = mystring.replace(/\s+$/g,' '); |
希望有帮助。
jquery.trim()工作正常。
http://api.jquery.com/jquery.trim/
我知道我不应该在一个主题上死灵,但是考虑到这个问题的细节,我通常把它扩展到:
- 我想用一个空格替换字符串中出现的多个空格
- …还有…我不希望空格出现在字符串的开头或结尾(trim)
为此,我使用类似这样的代码(第一个regexp上的圆括号就是为了使代码更易于阅读…regexps可能是一种痛苦,除非您熟悉它们):
1 | s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' '); |
这样做的原因是,字符串对象上的方法返回一个字符串对象,您可以在该对象上调用另一个方法(就像jquery和其他一些库)。如果您想在一个对象上连续地执行多个方法,则可以使用更紧凑的编码方式。
var x="测试测试测试".split("").join(");警报(X);
这个怎么样?
输出
这个也可以去掉任何标签
试试这个。
1 2 | var string =" string 1"; string = string.trim().replace(/\s+/g, ' '); |
结果是
1 | string 1 |
这里所发生的是,它将首先使用
如果要限制用户在名称中提供空格,只需创建一个if语句并给出条件。像我一样:
1 2 3 4 5 6 7 8 9 10 | $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函数。
- 这是按键事件。
- 初始化变量。
- 给出与角色匹配的条件
- 显示匹配条件的警报消息。