如何选择在网址前显示的所有文字?

时间:2011-07-14 14:36:55

标签: javascript jquery regex select

HTML:

<input type="text" name="field" id="field" value="Select this text http://www.domain.com" />

的JavaScript / JQuery的:

$(document).ready(function()
{
    var value = $('#field').val();

    //select text
});

如何选择text之前显示的所有url?不应该选择url之后的所有内容(包括url本身)。

BTW,文本也可能包含数字和特殊字符。

解决方案: 我最终使用了Rocket的解决方案split(/\shttps?:\/\//)(见下文)。

3 个答案:

答案 0 :(得分:1)

如果网址始终是超文本协议,那么您可以执行以下操作:

$(document).ready(function() {
    var myText = $('#field').val().split(' http')[0];
});

这将捕获http和https协议,据我所知,它是计算密集度最低的方法。

答案 1 :(得分:0)

文字只是一个字符串。您需要确定使URL成为唯一的部分 - 从http://开始(确保它不是https://),包括www。或其他。一旦你确定了匹配url的内容而不是之前的其他字符,那么很容易。

答案 2 :(得分:0)

使用java objec Regexp。这将允许您使用模式匹配并根据网址模式选择文本。

这是一个关于javascript RegExp对象的教程:http://www.w3schools.com/jsref/jsref_obj_regexp.asp

这是一个很好的javascript RegExp测试人员: http://www.regular-expressions.info/javascriptexample.html

如果您对正则表达式有任何疑问,请告诉我!!