После того, как вы прочитали через Интернет, ответ вы не можете! Вы можете удалить все или ничего. Обходной путь может быть примерно следующим:
$(document).on('click', '.btn', function (ev) {
alert('pressed');
$(this).removeClass("btn");
});
Demo @ Fiddle
Пример HTML:
Ваше регулярное выражение в порядке, но вы неправильно используете preg_match
. Он возвращает int
(0 или 1), а не логическое значение. Просто напишите if (! Preg_match ($ regex, $ string)) {...}
Регулярное выражение - наиболее эффективный способ проверки правильности домена. Если вы твердо настроены не использовать регулярное выражение (что IMO глупо), вы можете разделить каждую часть домена:
Затем вам нужно будет проверять каждый символ в каком-то цикле, чтобы убедиться, что он соответствует допустимому домену.
Как я уже сказал, это гораздо больше эффективно использовать регулярное выражение.
Я думаю, что как только вы выделите доменное имя, скажем, используя идею Эрклана:
$myUrl = "http://www.domain.com/link.php"; $myParsedURL = parse_url($myUrl); $myDomainName= $myParsedURL['host'];
вы могли бы использовать:
if( false === filter_var( $myDomainName, FILTER_VALIDATE_URL ) ) { // failed test }
Функции фильтра PHP5 предназначены именно для такой цели, как я мог подумать.
Это не совсем ответ на ваш вопрос, так как он не использует Regex, насколько я понимаю.
Вот еще один способ без регулярного выражения.
$myUrl = "http://www.domain.com/link.php";
$myParsedURL = parse_url($myUrl);
$myDomainName= $myParsedURL['host'];
$ipAddress = gethostbyname($myDomainName);
if($ipAddress == $myDomainName)
{
echo "There is no url";
}
else
{
echo "url found";
}
Если вы не хотите использовать регулярные выражения, вы можете попробовать следующее:
$str = 'domain-name';
if (ctype_alnum(str_replace('-', '', $str)) && $str[0] != '-' && $str[strlen($str) - 1] != '-') {
echo "Valid domain\n";
} else {
echo "Invalid domain\n";
}
, но, как сказано, регулярные выражения - лучший инструмент для этого.