У меня есть область моего сайта, которая позволяет пользователю вводить пользовательский URL.Правила URL-адреса заключаются в том, что он должен быть буквенно-цифровым, за исключением символа дефиса.Если используется дефис, он не может быть последовательным и не может начинать (или заканчивать) строку.
Я использую следующую функцию для достижения этой цели:
$('.url').bind("change keyup blur", function() {
var url = $(this);
url.val( url.val().replace(/[^A-z0-9-]/gi,'').replace(/-{2}/g,'-').replace(/^-/g,'') );
});
Функция работает хорошо, но яМне интересно, если это хорошая практика или возможно объединить правила в одном операторе замены.
Если используются последовательные дефисы (-), дефис заменяет его, так что я думаю, что требуется по крайней мере 2 оператора замены.
РЕДАКТИРОВАТЬ
Я получаю много ответов на вопрос в виде «вот код, который вы должны использовать», и хотя я ценю это, у меня работает функция.В конечном итоге я привел пример того, что я имел в виду под множественными операторами замены для одного значения, и было ли это хорошей или плохой практикой.
Я думаю, что подсказки кода или подсказки помогают, но это не вопрос «как мне сократить этот код».