首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用正则表达式解析javascript中的字符串

使用正则表达式解析javascript中的字符串
EN

Stack Overflow用户
提问于 2017-05-09 04:17:06
回答 4查看 112关注 0票数 0

我的页面上有html片段,它看起来像这样:

代码语言:javascript
运行
复制
...
    <address>
       6231 Leesburg Pike Ste 100A<br>
       Falls Church, VA 22041-2102
    </address>
...

如何使用jQuery解析此字符串以获取以下数据:

代码语言:javascript
运行
复制
1. Address: 6231 Leesburg Pike Ste 100A
2. City: Falls Church
3. State: VA
4. ZIP: 22041

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2017-05-09 04:39:57

正则表达式:

代码语言:javascript
运行
复制
(.*)\n(.*?),\s([A-Z]{2})\s(\d{5})

Javascript:

代码语言:javascript
运行
复制
var str = $("address").text()
var extract = str.match(/(.*)\n(.*?),\s([A-Z]{2})\s(\d{5})/);

var address = extract[1];
var city = extract[2];
var state = extract[3];
var zip = extract[4];

console.log(address) // 6231 Leesburg Pike Ste 100A
console.log(city)    // Falls Church
console.log(state)   // VA
console.log(zip)     // 22041
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<address>
6231 Leesburg Pike Ste 100A<br>
Falls Church, VA 22041-2102
</address>

Jsfiddle

票数 1
EN

Stack Overflow用户

发布于 2017-05-09 04:29:26

最实用的,假设state/zip中没有其他逗号-比oneliner regexp更易于阅读和维护

jQuery只用来获取和设置超文本标记语言- innerHTML可以用来根本不需要jQuery

代码语言:javascript
运行
复制
$(function() {
  var addr = $("address").html(),
    parts1 = addr.replace(/\s+/g, " ").split(/<br>/i),
    parts2 = parts1[1].split(","),
    parts3 = parts2[1].trim().split(" "),

    address = parts1[0].trim(),
    city = parts2[0].trim(),
    state = parts3[0].trim(),
    zip = parts3[1].trim(); // spirit on - if you need first part only 
  $("ol").after("<ol><li>Address: "+address+
     "</li><li>City: "+city+
     "</li><li>State: "+state+
     "</li><li>Zip: "+zip+"</li>");
});
代码语言:javascript
运行
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<address>
       6231 Leesburg Pike Ste 100A<br>
       Falls Church, VA 22041-2102
    </address>

<ol>
  <li>Address: 6231 Leesburg Pike Ste 100A</li>
  <li>City: Falls Church</li>
  <li>State: VA</li>
  <li>ZIP: 22041-2102</li>
</ol>

票数 0
EN

Stack Overflow用户

发布于 2017-05-09 04:29:42

代码语言:javascript
运行
复制
    console.log(`<address>
           6231 Leesburg Pike Ste 100A<br>
           Falls Church, VA 22041-2102
        </address>`.match(/(\d+.*)<br>\n\t?(.*), (\w+) ([\d-]+)/))

不需要jQuery

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43856589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档