【发布时间】:2015-02-27 15:14:38
【问题描述】:
在编程方面,尤其是 javascript,我是一个纯粹的业余爱好者,但我正在尝试解决一个问题,但我没有任何运气通过广泛的 Google 搜索找到解决方案。
我正在编写一个简短的脚本来获取从始终具有一致格式/布局但结果不同的网站复制的文本块,并将其粘贴到大文本字段中。然后单击一个按钮,它会从文本中提取某些信息,并以重新格式化的方式呈现这些信息。
我让它在我想做的大部分工作中发挥作用,但是文本的一部分包含多个换行符,因此我的匹配不起作用。当这场比赛失败时,它也会打破其余的比赛。具体来说,我正在尝试从以下文本中的“Restaurant:”和“Cuisine:”这两个词之间提取餐厅名称、地址、城市和邮政编码以及电话号码:
客人姓名:John Doe 电话:(555) 555-5555 预订日期:2015 年 3 月 14 日星期六时间:下午 6:00 聚会人数:2 确认号码:1703515901 餐厅:Café Boulud 20 东 76 街 纽约,纽约 10021 (212) 772-2600 菜式:法式、美式 餐厅寄语:感谢您在 Cafe Boulud 进行预订。国际客人:请在上面的空白处留下您的电子邮件地址和完整的电话号码。此信息将用于确认您与我们的预订。我们的菜单提供广泛的点菜选择,灵感来自厨师 Daniel Boulud 的四大烹饪缪斯:传统、经典的法国美食; la saison,时令美食; le potager,菜园;还有 le voyage,世界美食的味道。这是我写的。它适用于所有预订详情,但不适用于餐厅详情:
<HTML>
<HEAD>
<script>
function getVal(){
var val = document.getElementById('ta').value;
reserved = val.match("Name: (.*) Phone:");
date = val.match("Date: (.*) Time:");
time = val.match("Time: (.*) Party");
party = val.match("Size: (.*) Confirmation");
confirmation = val.match("#: (.*) Restaurant:");
restaurant = val.match("Restaurant: (.*) Cuisine:");
}
function myFunction() {
var myWindow = window.open("", "myWindow", "width=400, height=400");
myWindow.document.write(restaurant[1]+"</p>"+"Reserved Under: "+reserved[1]+"</br>Date: "+
date[1]+" at "+time[1]+"</br>Party Size: "+party[1]+"</br>Confirmation #: "+confirmation[1]
);
}
</script>
</HEAD>
<BODY>
</p>
<form>
<textarea rows="30" cols="100" id="ta"></textarea></br>
<button onclick="getVal(); myFunction();">Get Value</button>
</form>
</BODY>
</HTML>
【问题讨论】:
-
看起来我复制的文本块没有保留换行符。在“Cafe Boulud”、“76th St.”、“10021”和“(212) 772-2600”之后有一个\n
-
@georg 你忘记了文本中
Cuisine前面的\n。 -
@Ninetainedo:是的,完成了。
-
感谢您修复布局。
标签: javascript regex match