0

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

new_town_city_st  

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

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

4

2 回答 2

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
于 2013-09-24T22:24:34.717 回答
0

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

编辑以将逗号放入组合中

编辑:您的帖子没有明确说明,但如果您希望它小写:

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

于 2013-09-24T22:16:03.880 回答