用正则表达式替换捕获的空格未知的次数

时间:2013-09-24 22:11:23

标签: javascript regex

如果我有一个与城市/州格式The City, ST模式匹配的正则表达式,并考虑到某些城镇的名称中有多个单词,我该如何将它们缩减为这种格式?

new_town_city_st  

我的表达:/(\w+(\s))*(\w+)(,\s)(\w{2})/

当我不知道每个城镇名称会有多少单词时,如何用下划线替换我捕获(空格)的位置?

2 个答案:

答案 0 :(得分:3)

只需用下划线替换所有重复的非单词字符(\W),如下所示:

var locationInput = 'New Town City, ST';

var underscoreLocation = function(location) {
    return location.replace(/\W+/ig, '_').toLowerCase();
};

var locationOutput = underscoreLocation(locationInput);
// => new_town_city_st

答案 1 :(得分:0)

myString=myString.replace(/,\s*|\s+/g,'_');

编辑将逗号输入混合

编辑:你的帖子没有明确说出来,但是如果你想让它更低级:

myString=myString.replace(/,\s*|\s+/g,'_').toLowerCase();