Проверьте правильность ввода любых двух указанных c букв, произнесенных 'a' и 'i' в JavaScript, и замените 'a' на @, а 'i' на? - PullRequest
1 голос
/ 13 февраля 2020

Я новичок ie и мне нужна помощь здесь. Нам нужна строка ввода от пользователя. Входная строка должна содержать обе буквы 'a' и 'i'. Если он не содержит и то, и другое, мы отклоняем ввод и предупреждаем пользователя.

Если строка ввода содержит и 'a', и 'i', тогда мы заменяем a with @ and i with !. Затем мы выводим вывод.

Например: aletis-->@lert!s

Я пытался

var check = /[aiAI]/;

, но это требует ввода, даже если удовлетворяется только a или i.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2020
if (/(?=.*a)(?=.*i).*/.test('aletis')) {
    const result = "aletis".replace(/a/gi, "@").replace(/i/gi, "!");
    // Rest of your code
} else {
    // SHOW ERROR
}
0 голосов
/ 13 февраля 2020

Вы можете просто использовать include и заменить

  • Сначала получите значение элемента ввода
  • Перейдите в нижний регистр и проверьте, существуют ли оба значения a и i или нет
  • Если существует, заменить a и i на соответствующие значения

function handleSubmit(e) {
  e.preventDefault()
  let element = document.getElementById('input').value
  let lowerCased = element.toLowerCase()
  if (lowerCased.includes('a') && lowerCased.includes('i')) {
    console.log(element.replace(/a/gi, '@').replace(/i/gi, '!'))
  }
}
<form onsubmit='handleSubmit(event)'>
  <input id='input'>
  <button type='submit'>Submit</button>
</form>
0 голосов
/ 13 февраля 2020

Если вы действительно новичок в regex, я бы посоветовал вам сделать это в два шага, так как это будет гораздо понятнее.

"alertis".replace(/a/gi, "@").replace(/i/gi, "!");

/ a / gi означает найти "a «с / gi означает« без учета регистра »и глобальный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...