0

我通过 JSON 从 contentful.com 提取文本。在此文本中,我有一个链接 (www.google.com),我想将其设为可点击。我正则表达式字符串:

/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a    href='$1'>$1</a>"

www.google.com变成<a href='http://www.google.com'>http://www.google.com</a>. 然后,当我尝试通过 jquery 函数将其附加到 a 时,ul我得到一个error: Unexpected identifier.

关于如何解决这个问题的任何想法?

编辑:

$.getJSON( "http://cdn.contentful.com/spaces/7la7mcq409gs/entries?\
access_token=",  function( data ) {

 $("#solutionsDiv ul").append('<li data-role="list-divider" role="heading" class="ui-li ui-li- divider ui-bar-b ui-corner-top ui-first-child">Featured Solutions</li>');

 for (i = 0; i < data.total; i++) {
 var replaced = data.items[i].fields.about;
 replaced = replaced.replace(/\r?\n/g, '<br />');
 replaced = replaced.replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-  9+&@#\/%=~_|])/ig,"<a href='$1'>$1</a>"); 

$("#solutionsDiv ul").append('<li data-theme="c" data-corners="false" data-shadow="false" data-iconshadow"true" data-wrapperels="div" data-icon="arrow-r" data-iconpos="right" class ="ui-btn ui-btn-icon-right ui-li-has-arrow ui-li ui-corner-bottom ui-li-last ui-li-static ui-last-child ui-btn-up-c"><div class = "ui-btn-inner ui-li ui-li-static ui-btn-up-c"><div class = "ui-btn-text"><a onClick = "newSolution(\'' +  data.items[i].fields.website + '\',\'' + replaced + '\',\'' + data.items[i].fields.slogan + '\',\'' + data.items[i].fields.productName + '\');" data-transition="slide" class="ui-link-inherit">' + data.items[i].fields.productName + '</a></div><span class="ui-icon ui-icon-arrow-r ui-icon-shadow">&nbsp;</span></div></li>');
4

1 回答 1

0

问题似乎是您复制粘贴了一些正则表达式而没有自己编写,因此不了解它的作用。:)

在这种特殊情况下,我相信它的目的是完全写出 uri,而不是短格式的。

在这个变体中,

(\b((:?https?|ftp|file):\/\/)?[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])

我已将协议前缀设为可选,以便它适用于您的 bing.com 示例。

于 2013-10-14T21:11:10.390 回答