如果我有一个与城市/州格式The City, ST
模式匹配的正则表达式,并且考虑到某些城镇的名称中有多个单词,我该如何将它们简化为这种格式?
new_town_city_st
我的表达: /(\w+(\s))*(\w+)(,\s)(\w{2})/
当我不知道每个城镇名称有多少个单词时,如何用下划线替换我捕获的位置(空格)?
如果我有一个与城市/州格式The City, ST
模式匹配的正则表达式,并且考虑到某些城镇的名称中有多个单词,我该如何将它们简化为这种格式?
new_town_city_st
我的表达: /(\w+(\s))*(\w+)(,\s)(\w{2})/
当我不知道每个城镇名称有多少个单词时,如何用下划线替换我捕获的位置(空格)?
只需将所有重复的非单词字符 ( \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
myString=myString.replace(/,\s*|\s+/g,'_');
编辑以将逗号放入组合中
编辑:您的帖子没有明确说明,但如果您希望它小写:
myString=myString.replace(/,\s*|\s+/g,'_').toLowerCase();