如果我有一个与城市/州格式The City, ST
模式匹配的正则表达式,并考虑到某些城镇的名称中有多个单词,我该如何将它们缩减为这种格式?
new_town_city_st
我的表达:/(\w+(\s))*(\w+)(,\s)(\w{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();