所以我有这段代码:
function validateText(str)
{
var tarea = str;
var tarea_regex = /^(http|https)/;
if(tarea_regex.test(String(tarea).toLowerCase()) == true)
{
$('#textVal').val('');
}
}
这适用于此:
https://hello.com
http://hello.com
但不适用于:
这是一个网站http://hello.com asdasd asdasdas
尝试做一些阅读,但我不在哪里放*?因为他们会根据这里检查字符串中任何地方的表达式 - > http://www.regular-expressions.info/reference.html
谢谢
答案 0 :(得分:12)
从它的外观来看,你只是检查字符串中是否存在http或https。正则表达式对于此目的来说有点过分。使用indexOf
:
function validateText(str)
{
var tarea = str;
if (tarea.indexOf("http://") == 0 || tarea.indexOf("https://") == 0) {
// do something here
}
}
答案 1 :(得分:8)
试试这个:
function validateText(string) {
if(/(http(s?)):\/\//gi.test(string)) {
// do something here
}
}
答案 2 :(得分:4)
((http(s?))\://))
这里有很多想法:http://regexlib.com/Search.aspx?k=URL&AspxAutoDetectCookieSupport=1
答案 3 :(得分:3)
答案 4 :(得分:3)
开头的^
匹配字符串的开头。只需删除它。