У меня есть текстовое поле для полного имени с идентификатором «имя_класса»
У меня есть текстовое поле для сгенерированного имени пользователя с идентификатором "class_add"
Я пытаюсь сделать регулярное выражение в jQuery, чтобы удалить все экземпляры Mr, Ms, Mrs, Miss
- с расширением . в конце приветствия
Код: Выделить всё
Full Name
Create
Код: Выделить всё
$(document).ready(function() {
$('#class_name').on('input', function() {
str = $('#class_name');
var text = str.text().replace(/^(Mr\.*\s+|Miss\.*\s+|Mrs\.*\s+|Ms\.*\s+)*(.*)$/is, '');
var firstChar = str.val().substr(0, 1);
var lastChars = str.val().split(' ').slice(1).join(' ');
var lastChars = lastChars.replace(/\s+/g, '');
var actual = firstChar + '.' + lastChars;
$('#class_add').empty();
$('#class_add').attr("value", actual).css("text-transform","lowercase");
});
});
Если я пропущу регулярное выражение для поиска и введу «Джон Доу», предлагаемое имя пользователя будет j.doe — эта часть работает. Хотя я уверен, что код можно улучшить, однако я совершенно новичок в этом
Однако, если кто-то введет «Мистер Джон Доу» или «Мистер. Джон Доу' Я бы хотел, чтобы приветствия были полностью удалены.
Я тоже пробовал:
Код: Выделить всё
str.val().replace('/^(Mr|Mrs|Mr|Miss)\.[A-Za-z]+$/', '');
Проверил экземпляры регулярных выражений
Подробнее здесь: https://stackoverflow.com/questions/787 ... -statement
Мобильная версия