1

I don't want to use split or join.

var str = "cause variety of files";  
alert(str.replace(" " , "_"));

The code above outputs : "cause_variety of files"

The output I seek is : "cause_variety_of_files"

War10ck
  • 12,387
  • 7
  • 41
  • 54
Sudharsan S
  • 15,336
  • 3
  • 31
  • 49

3 Answers3

3

Try this code :

str.replace(/ /g, "_");

By default, the replace function replace the first occurence. So you must use a RegExp with the global flag.

You can learn more on regulars expressions here : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

Magus
  • 14,796
  • 3
  • 36
  • 51
0

try this for multiple space

str.replace(/\s+/g,'_');

or single space

str.replace(/\s/g,'_');
Man Programmer
  • 5,300
  • 2
  • 21
  • 21
  • 3
    `Try this` does not teach the asker anything. Please explain what you did and why it should work, otherwise it's not a good answer. – Sterling Archer May 19 '14 at 14:38
0

Try using regular expression and the replace() function:

$(document).ready(function() {
    var elem = "cause variety of files";
    console.log(elem.replace(/\s+/g, '_'));
});

The regex takes all the whitespace ( 1 or more ) using the \s+ pattern and replace it by a string you like. In your case a underscore.

Mivaweb
  • 5,580
  • 3
  • 27
  • 53
  • 1
    You shouldn't use `alert()` like a debug statement. `console.log()` should be used for debugging (also because you can use breakpoints in dev tools if you need to pause execution). Also please explain what your regex does – Sterling Archer May 19 '14 at 14:39