如何在城市和州代码之间使用逗号将城市和州从破折号格式化为空格。(javascript)
例如,我有一个字符串如何在城市和州代码之间使用逗号将城市和州从破折号格式化为空格。(javascript),javascript,regex,Javascript,Regex,例如,我有一个字符串Atlantic City NJ如何使用JavaScript正则表达式(或任何其他方式)将字符串格式化为Atlantic City NJ 我有问题,因为可能有不同数量的空间:Atlanta,GAvsAtlantic City,NJvsLake Havasu City,AZ此表达式将为您提供两个部分: ([\w-]+)([A-Z]{2}) “大西洋城”和“新泽西州” 您可以将这两部分替换为字符串,第一部分将连字符转换为空格,然后将结果、逗号和第二部分组成一个字符串 如果您想了
Atlantic City NJ
如何使用JavaScript正则表达式(或任何其他方式)将字符串格式化为Atlantic City NJ
我有问题,因为可能有不同数量的空间:
Atlanta,GA
vsAtlantic City,NJ
vsLake Havasu City,AZ
此表达式将为您提供两个部分:
([\w-]+)([A-Z]{2})
“大西洋城”和“新泽西州”
您可以将这两部分替换为字符串,第一部分将连字符转换为空格,然后将结果、逗号和第二部分组成一个字符串
如果您想了解更多详情,请告诉我。您可以这样做:
var test=“新泽西大西洋城”;
test=test.split(“-”);
var结果=”;
对于(变量i=0;i 警报(结果)代码>您当然可以利用,但如果验证不重要,您可以像这样完成所有工作:
var str=“新泽西大西洋城”;
警报(str.replace(/(.+)\-([A-Z]{2})$/,“$1,$2”)。replace(“\-”,”)代码>以下表达式将匹配最后一个连字符(-)和国家代码
/([\w-]+)(([^-])+)$)/
有了这个你就可以做到了
string.replace(/([\w-]+)(([^-])+)$)/,“$1,$3”)。replace(/-/g,”)
这将用逗号和国家代码替换最后一个连字符和国家代码,并用空格替换其余连字符
正则表达式说明:
1st Capturing group ([\w-]+)
[\w-]+ match a single character present in the list below
Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy]
\w match any word character [a-zA-Z0-9_]
- the literal character -
2nd Capturing group (-(([^-])+)$)
- matches the character - literally
3rd Capturing group (([^-])+)
4th Capturing group ([^-])+
Quantifier: + Between one and unlimited times, as many times as possible, giving back as needed [greedy]
[^-] match a single character not present in the list below
- the literal character -
$ assert position at end of the string
如果希望状态代码更简洁,可以将[A-Z]+
替换为[A-Z]{2}
。状态是否将由两个字符的代码表示?是否所有初始字符串空格都替换为破折号?@TaraLerias请参阅我的修订答案,对不起,我误读了问题。我问OP这个州是否会被表示为代码。如果你的正则表达式在测试数据中不起作用,我怀疑数据中有状态缩写。否则,需要更多关于格式的信息。
var cs = ["Lake-Havasu-City-AZ", "Altanta-GA", "Atlantic-City-NJ", "Atlantic-City"];
for ( var i in cs )
console.log(cs[i].replace( new RegExp('-([A-Z]+)$'), ', $1').replace('-',' ','g'))
// prints...
Lake Havasu City, AZ
Altanta, GA
Atlantic City, NJ
Atlantic City