2015-12-20 47 views
0

我有这样的字符串正则表达式重复元素

www -aaa - ddd - xxx

,并希望第二-后删除所有内容。在这个例子中,结果需要看起来像这样:

www -aaa

我试过这个表达式:

((-|–).*)((-|–).*) 

但它匹配一切从第一个破折号开始,和我不熟悉与

> var s = 'www -aaa - ddd - xxx ' 
undefined 
> s.replace(/(-[^-]*).*/, '$1') 
'www -aaa ' 
> s.replace(/(-[^-]*)\b.*/, '$1') 
'www -aaa' 

回答

3

使用捕获组。没有正则表达式而被收购。

var str="www -aaa - ddd - xxx"; 
 
str=str.split("-").slice(0,2).join("-") 
 
alert(str)

+0

如果我想不经过第二只'删除-'而是一群像'+''--'等符号后? – Qwe

+0

's.replace(/(-.*?)\+.*/,'$ 1')' –

+0

nono我的意思是如果我的srings看起来像'w - a -d'' w + a + d'' w - a --d',我想在第二个'-''+''--'等后面删除 – Qwe