我遇到一种情况,我想用单-
替换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);
使用单词边界来定位单词之间的空格。
var str = "Beco de Santo António BT, Cascais , Portugal";
str2 = str.replace(/bs+b/g, '-');
alert(str2);
试试这个
var str = "Beco de Santo António BT, Cascais , Portugal";
str2 = str.replace(/s+/g, '-').replace(/,-/g, ',').replace(/-,/g, ',');
alert(str2);
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>
试试这个:
var str = "Beco de Santo António BT, Cascais , Portugal";
array = str.split(",");
array = $.map(array, function(value){
return $.trim(value).replace(/ss+/g, '-').replace(/ /g, '-');
});
str = array.join(",");
这可以完成您的工作:
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);
}
我正在做的是使用逗号拆分字符串并将它们放入数组中,然后遍历数组。 在每次迭代中,我都会删除前导和尾随空格,然后替换中间的剩余空格以替换为连字符(全部就地完成(,最后用逗号将它们连接在一起。
var str = "Beco de Santo António BT, Cascais , Portugal";
str2 = str.replace(/ws+w/g, function(match, index){ return match.replace(/s+/g, '-') });
alert(str2);
首先删除,
附近的多余空格,然后将字符串中的空格替换为-
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);