この単純な機能は私にとってはうまくいきます。速度を上げるために TLD ドメインの実際の存在は気にしませんが、example.com のような構文をチェックします。
申し訳ありませんが、VBAのトリム() は js の組み込み関数ではないことを忘れていました。
// Removes leading whitespaces
function LTrim(value)
{
var re = /\s*((\S+\s*)*)/;
return value.replace(re, "$1");
}
// Removes ending whitespaces
function RTrim(value)
{
var re = /((\s*\S+)*)\s*/;
return value.replace(re, "$1");
}
// Removes leading and ending whitespaces
function trim(value)
{
return LTrim(RTrim(value));
}
function hasDomainTld(strAddress)
{
var strUrlNow = trim(strAddress);
if(strUrlNow.match(/[,\s]/))
{
return false;
}
var i, regex = new RegExp();
regex.compile("[A-Za-z0-9\-_]+\\.[A-Za-z0-9\-_]+$");
i = regex.test(strUrlNow);
regex = null;
return i;
}
したがって、コード $(this) はウィンドウ オブジェクトなので、jQuery の代わりに従来の js を使用して、objInput を引数に渡します。
function checkIt(objInput)
{
var val = objInput.value;
if(val.match(/http:/i)) {
return false;
}
else if (hasDomainTld(val)) {
objInput.value = 'http://' + val;
}
}
自分でテストしてください: http://jsfiddle.net/SDUkZ/8/