2017-07-03 68 views
0

我有,我想,以取代单一-一个string我能做到这一点的情况,但问题是更换由连字符空格,但是周围没有逗号

var str = "Beco de Santo António BT, Cascais , Portugal"; // input 

输出

Beco-de-Santo-António-BT,-Cascais-,-Portugal // output 

但是你可以看到, Cascais , Portugal我在找==>,-Cascais-,-Portugal

我想要的输出:

Beco-de-Santo-António-BT,Cascais,Portugal 

var str = "Beco de Santo António BT, Cascais , Portugal"; 
 

 

 
str2 = str.replace(/\s+/g, '-'); 
 

 
alert(str2);

+0

首先删除逗号周围的所有空格,然后由连字符代替空格。 'str.replace(/ \ S *,\ S * /克, '')代替(/ \ S + /克, ' - ')'不需要 – Tushar

+0

jQuery的,所以我移除了相应的jQuery标签和库从片段。 – Tushar

+0

随着单'replace':'.replace(/ \ S *,\ S * | \ S + /克,(M)=> m.trim() '': ' - '?)'' – Tushar

回答

0

试试这个

var str = "Beco de Santo António BT, Cascais , Portugal"; 

str2 = str.replace(/\s+/g, '-').replace(/,-/g, ',').replace(/-,/g, ','); 

alert(str2); 
1

var str = "Beco de Santo António BT, Cascais , Portugal"; 
 

 
str2 = str.replace(/ , /g, ', '); 
 
str2 = str2.replace(/\s+/g, '-'); 
 
str2 = str2.replace(/,-/g, ','); 
 

 
alert(str2);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

这个解决方案很容易理解,谢谢 – EaB

+0

是的,它是最简单的。乐于帮助! – pravid

+0

我认为这是我的“无偿jQuery包含”列表。 ;-) – RobG

0

试试这个:

var str = "Beco de Santo António BT, Cascais , Portugal"; 
array = str.split(","); 
array = $.map(array, function(value){ 
    return $.trim(value).replace(/\s\s+/g, '-').replace(/ /g, '-'); 
}); 
str = array.join(","); 
0

这确实你的工作:

function showInput(){ 
    var str = "Beco de Santo António BT, Cascais , Portugal"; 
    var res = str.split(","); 
    for (var i=0; i<res.length; i++){ 
     res[i] = res[i].trim(); 
     res[i] = res[i].replace(/\s+/g, '-'); 
    } 
    var output = res.join(); 
    alert(output); 
} 

什么我做的是我现在用的是逗号分割字符串,将它们放入一个数组,然后通过数组迭代。 在每次迭代中,我去除前导和尾部空格,那么在与所述连字符来替换替换之间的剩余空白字符(全部完成就地),然后在最后,用逗号一起连接它们。

0

var str = "Beco de Santo António BT, Cascais , Portugal"; 
 

 

 
str2 = str.replace(/\w\s+\w/g, function(match, index){ return match.replace(/\s+/g, '-') }); 
 

 
alert(str2);

1

首先删除多余的空间,其就在附近的,然后通过-

str.replace(/\s*,[,\s]*/g,',') // first remove spaces nearby commas 
    .replace(/\s+/g,'-'); // then replace them by - 

var str = "Beco de Santo António BT, Cascais , Portugal"; 
 
str2 = str.replace(/\s*,[,\s]*/g,',').replace(/\s+/g,'-'); 
 
console.log(str2);

2
替换字符串内的空间

使用word boundaries来定位单词之间的空格。

var str = "Beco de Santo António BT, Cascais , Portugal"; 
 

 

 
str2 = str.replace(/\b\s+\b/g, '-'); 
 

 
alert(str2);

相关问题