Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在城市和州代码之间使用逗号将城市和州从破折号格式化为空格。(javascript)_Javascript_Regex - Fatal编程技术网

如何在城市和州代码之间使用逗号将城市和州从破折号格式化为空格。(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
vs
Atlantic City,NJ
vs
Lake 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