Javascript 用连字符替换空格,但不要在逗号周围

Javascript 用连字符替换空格,但不要在逗号周围,javascript,node.js,regex,Javascript,Node.js,Regex,我有一种情况,我想用单个-替换字符串,但问题是 var str = "Beco de Santo António BT, Cascais , Portugal"; // input 输出 Beco-de-Santo-António-BT,-Cascais-,-Portugal // output 但是你可以看到葡萄牙的卡斯凯斯,我得到了葡萄牙的卡斯凯斯 我想要的输出: Beco-de-Santo-António-BT,Cascais,Portugal var str=“Bec

我有一种情况,我想用单个
-
替换
字符串,但问题是

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

Beco-de-Santo-António-BT,-Cascais-,-Portugal  // output
但是你可以看到葡萄牙的卡斯凯斯,我得到了葡萄牙的卡斯凯斯

我想要的输出:

 Beco-de-Santo-António-BT,Cascais,Portugal
var str=“Beco de Santo António BT,卡斯凯斯,葡萄牙”;
str2=str.replace(/\s+/g,'-');
警报(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,卡斯凯斯,葡萄牙”;
str2=str.replace(/,/g,,);
str2=str2。替换(/\s+/g,“-”);
str2=str2。替换(/,-/g,,');
警报(str2)
试试这个:

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(",");
这就是你的工作:

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);
}
函数showInput(){
var str=“Beco de Santo António BT,卡斯凯斯,葡萄牙”;
var res=str.split(“,”);
对于(var i=0;i
var str=“Beco de Santo António BT,卡斯凯斯,葡萄牙”;
str2=str.replace(/\w\s+\w/g,函数(匹配,索引){return match.replace(/\s+/g,'-'))});

警报(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,卡斯凯斯,葡萄牙”;
str2=str.replace(/\s*,[,\s]*/g',,')。replace(/\s+/g',-');
console.log(str2);
用于定位单词之间的空白

var str=“Beco de Santo António BT,卡斯凯斯,葡萄牙”;
str2=str.replace(/\b\s+\b/g,'-');

警报(str2);
首先删除逗号周围的所有空格,然后用连字符替换空格。
str.replace(/\s*,\s*/g',,')。replace(/\s+//g',-')
不需要jQuery,所以我从代码段中删除了jQuery标记和库。使用single
replace
。replace(/\s*,\s*\s+/g,(m)=>m.trim(),“:-”)
str.replace(/\b\s+\b/g,“-”).replace(/\s+/g,”)
是的,这是最简单的一个。很乐意帮忙!我认为这是我列出的“免费jQuery包含”中的第一个;-)