Remove whitespaces inside a string in javascript

后端 未结 4 1133
[愿得一人]
[愿得一人] 2020-11-29 00:22

I\'ve read this question about javascript trim, with a regex answer.

Then I expect trim to remove the inner space between Hello and World.



        
相关标签:
4条回答
  • 2020-11-29 00:29

    For space-character removal use

    "hello world".replace(/\s/g, "");
    

    for all white space use the suggestion by Rocket in the comments below!

    0 讨论(0)
  • 2020-11-29 00:41

    You can use Strings replace method with a regular expression.

    "Hello World ".replace(/ /g, "");

    The replace() method returns a new string with some or all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp

    RegExp

    • / / - Regular expression matching spaces

    • g - Global flag; find all matches rather than stopping after the first match

    const str = "H    e            l l       o  World! ".replace(/ /g, "");
    document.getElementById("greeting").innerText = str;
    <p id="greeting"><p>

    0 讨论(0)
  • 2020-11-29 00:42

    Probably because you forgot to implement the solution in the accepted answer. That's the code that makes trim() work.

    update

    This answer only applies to older browsers. Newer browsers apparently support trim() natively.

    0 讨论(0)
  • 2020-11-29 00:47

    You can use

    "Hello World ".replace(/\s+/g, '');
    

    trim() only removes trailing spaces on the string (first and last on the chain). In this case this regExp is faster because you can remove one or more spaces at the same time.

    If you change the replacement empty string to '$', the difference becomes much clearer:

    var string= '  Q  W E   R TY ';
    console.log(string.replace(/\s/g, '$'));  // $$Q$$W$E$$$R$TY$
    console.log(string.replace(/\s+/g, '#')); // #Q#W#E#R#TY#
    

    Performance comparison - /\s+/g is faster. See here: http://jsperf.com/s-vs-s

    0 讨论(0)
提交回复
热议问题