2013-07-10 80 views
1

如何使用JS正则表达式来替换一个空格的所有出现的空格,如果括号之间? 所以,我想是这样的:JavaScript的正则表达式替换括号之间的空格

myString = "a scentence (another scentence between brackets)" 
myReplacedString = myString.replace(/*some regex*/) 
//myReplacedString is now "a scentence (anotherSPACEscentenceSPACEbetweenSPACEbrackets)" 

编辑: 我已经试过这是(我是很新的正则表达式)

myReplacedString = myString.replace(/\(\s\)/, "SPACE"); 
+0

是否有任何措施来解决此问题?如果您告诉我们迄今为止已尝试的内容,我们将更愿意回答您的问题。 (问一个更好的问题的有用链接:[ask],[help]) – Doorknob

回答

2

我不知道一个正则表达式,但你可以使用两个。一个取得()内的字符串,然后用'SPACE'取代' '

myReplacedString = myString.replace(/(\(.*?\))/g, function(match){ 
    return match.replace(/ /g, 'SPACE'); 
}); 
4

也许你可以使用正则表达式:

/\s(?![^)]*\()/g 

这将在它前面的匹配没有开口支架的任何空间,在空间和左括号之间没有右括号。

这是demo

编辑:我没有考虑句子不以括号结束的情况。 @ thg435的正则表达式涵盖了它,但是:

/\s(?![^)]*(\(|$))/g 
+3

我会说'/ \ s(?![^)] *(\(| $))/',来处理'xx xx xx)xx xx'。 – georg

+0

@ thg435没有考虑过这个可能,谢谢! – Jerry

相关问题