我的页面上有html片段,它看起来像这样:
...
<address>
6231 Leesburg Pike Ste 100A<br>
Falls Church, VA 22041-2102
</address>
...如何使用jQuery解析此字符串以获取以下数据:
1. Address: 6231 Leesburg Pike Ste 100A
2. City: Falls Church
3. State: VA
4. ZIP: 22041谢谢!
发布于 2017-05-09 04:39:57
正则表达式:
(.*)\n(.*?),\s([A-Z]{2})\s(\d{5})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<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>
发布于 2017-05-09 04:29:26
最实用的,假设state/zip中没有其他逗号-比oneliner regexp更易于阅读和维护
jQuery只用来获取和设置超文本标记语言- innerHTML可以用来根本不需要jQuery
$(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>");
});<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>
发布于 2017-05-09 04:29:42
console.log(`<address>
6231 Leesburg Pike Ste 100A<br>
Falls Church, VA 22041-2102
</address>`.match(/(\d+.*)<br>\n\t?(.*), (\w+) ([\d-]+)/))
不需要jQuery
https://stackoverflow.com/questions/43856589
复制相似问题