JavaScript basic replace two chars in same string

2019-02-19 11:32发布

问题:

I have:

var foo = '(bar)'
foo.replace('(', '').replace(')', '')

So, I get bar without parentheses, is there a better way to do this?

回答1:

You could use:

foo = foo.replace(/[()]/g, '');

That involves a simple regular expression that matches all instances of either open- or close-parentheses. Note that you have to include that assignment, as ".replace()" does not modify the string; it returns the modified string.



回答2:

You could use a regex capturing everything inside parentheses in a capturing group as per Javascrip Regex e.g.

var foo = "(bar)";
var replacedStr = foo.replace(/\((.*)\)/g, "$1");

or replacing just the parentheses with empty string e.g.

var foo = "(bar)";
var replacedStr = foo.replace(/[()]/g, ""); 


回答3:

If it is always the first and last characters you are trying to get rid of, you could use the slice method: http://www.w3schools.com/jsref/jsref_slice_string.asp

​var foo = '(bar)';
alert(foo.slice(​​​​​​​​1, 4));
//Or
alert(foo.slice(1, foo.length - 1));​