admin管理员组

文章数量:1410697

How can i replace character with regex, but from variable. Example:

var separator = '-';
text = text.replace(/[-\s]+/g, separator);

this will replace - trailing character with separator, which i the same in this case.

So, i need to set this - character from variable separator:

var separator = '-';
var regex = '/['+separator+'\s]+/g';
text = text.replace(regex, separator);

How can i do this? Thanks.

How can i replace character with regex, but from variable. Example:

var separator = '-';
text = text.replace(/[-\s]+/g, separator);

this will replace - trailing character with separator, which i the same in this case.

So, i need to set this - character from variable separator:

var separator = '-';
var regex = '/['+separator+'\s]+/g';
text = text.replace(regex, separator);

How can i do this? Thanks.

Share edited Nov 2, 2014 at 1:41 falsetru 370k67 gold badges765 silver badges658 bronze badges asked Sep 13, 2013 at 16:47 Mirza DelicMirza Delic 4,35912 gold badges59 silver badges88 bronze badges 0
Add a ment  | 

1 Answer 1

Reset to default 7

Use RegExp to dynamically generate regular expression:

function escapeRegExp(string){
    return string.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
var regex = new RegExp('[' + escapeRegExp(separator) + '\\s]', 'g');

escapeRegExp es from Regular Expressions - JavaScript | MDN.

NOTE: You have to escape \, and separator.

本文标签: javascript regex replace variableStack Overflow