Маскировать неудар в лунку text javascript

Я хочу маскировать неудар в лунку text со следующим форматом: Aa-1234, где 2 буквы - инициалы состояний Соединенных Штатов, отделенных схемой, и 4 числа - zip code 4 цифр: как он мог бы делать это с javascript?

4
задан 12.03.2018, 02:05
3 ответа

Ты протестировал этот книжный магазин JQuery?

http://digitalbush.com/projects/masked-input-plugin/

Он делает точно то, что ты желаешь. Не санкционируй ввод пользователя, форматируй input text чтобы вводить данные с маской, которых ты перемещаешь его.

В твоем случае instanciaría следующего способа:

$("#id_input").mask("aa-9999");
4
ответ дан 03.12.2019, 21:13
  • 1
    Если, но оно не функционирует, это app с phonega. – Wuilmer Medrano 28.07.2016, 02:22
  • 2
    Phonegap не быть должным и # 237; чтобы быть препятствием. JQuery полностью совместим с Phonegap и Вашим librer и # 237; эксперт они обычно не дают проблемы. – manuman94 28.07.2016, 03:21
  • 3
    хороший уже я проверил и я я не функционирую – Wuilmer Medrano 28.07.2016, 03:30

В input ты можешь использовать признак pattern рядом с регулярным выражением, чтобы уверять, что у ввода есть формат, который ты хочешь. Плохое состоит в том, что он все еще не вынесен всеми браузерами: оно будет функционировать для Chrome, Firefox, Действуй или IE10 +, но оно не будет функционировать хорошо с Safari.

Так что ты был бы должен делать он состоит в том, чтобы искать регулярное выражение, которое приспосабливалось бы к тому, что ты хочешь. Идея была бы чем-то как это:

  • 2 буквы (которые могли бы быть любыми, или которые ты захочешь, но это осложнит регулярное выражение)
  • 1 схема
  • 5 цифр (хотя в вопросе ты говоришь 4, почтовые индексы в США у него есть 5 цифр)

Так ты мог бы считать регулярное выражение этой: ^[a-zA-Z]{2}-[0-9]{5}$ что сочетаемая с признаком pattern это осталось бы так:

<form>
  <input type="text" pattern="^[a-zA-Z]{2}-[0-9]{5}$" placeholder="ll-ddddd" />
  <button>Enviar</button>
</form>

Другой выбор (в случае, если pattern не функционируйте) он состоял бы в том, чтобы делать это с языком сценариев JavaScript, с тем же регулярным выражением. Во время посылания формуляра, было бы доказано с языком сценариев JavaScript, выполняет ли поле формат, который ты хочешь, и если не, его является сообщением ошибки и он не послан.

В языке сценариев JavaScript это оказалось бы так:

document.getElementById("miform").addEventListener("submit", function(e) {
  var estado = document.getElementById("estado-cp").value;
  if (estado.match("^[a-zA-Z]{2}-[0-9]{5}$")) {
    alert("Cumple el patron");
  } else {
    alert("No cumple el patron");
    e.preventDefault(); // no se envia el formulario
  }
});
<form id="miform">
  <input type="text" id="estado-cp" />
  <button>Enviar</button>
</form>

Сейчас, зная, что число состояний ограничено (50), и что есть какие-то специальные случаи (территории, код для иностранца), ты мог бы ограничивать еще больше две буквы, которые допускаются в просто тех, которые действительные (p.e.: В, AK, TX...) и регулярное выражение ты мог бы быть таким:

^[AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MD|MH|MA|MI|FM|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VA|VI|WA|WV|WI|WY]{2}-[0-9]{5}$
1
ответ дан 03.12.2019, 21:13
  • 1
    Уже resolv и # 237; спасибо за помощь – Wuilmer Medrano 21.07.2016, 07:52
  • 2
    @WilmerMorgado Гениальный: D. и #191; C и # 243; mo ты это решил в конце концов? Пожалуйста, имей м и # 233; совсем с тем, которого ты это достиг в конце концов – Alvaro Montoro♦ 21.07.2016, 07:59
  • 3
    Так я это решил cadenaFinal=this.value [0] +this.value [1] + " - " +this.value [2] +this.value [3] +this.value [4] +this.value [5]; – Wuilmer Medrano 27.07.2016, 21:12
  • 4
    Это s и # 243; это ограничивает tama и # 241; или ввода но не Вашего контента. и #191; Цюй и # 233; происходи, если пользователь вводит 45abdhf, что быть и # 237; в цепь inv и # 225; lida? и #191; допускать и # 237; в? – Alvaro Montoro♦ 27.07.2016, 22:22
  • 5
    Но то, что ты комментируешь s и # 243; это контролирует длина ввода и не Вашего контента. Пользователи ты можешь писать стоимость, которая не выполняет формат, который ты хочешь и твой soluci и # 243; n это допускать и # 225; в то время как мой ответ или ответ Пака Лэя Чуна делают две вещи – Alvaro Montoro♦ 28.07.2016, 05:02

Я не понимаю хорошо в quГ© ты относишься со словом маскировать, но я думаю, что твой конец состоит в том, чтобы санкционировать, что у текста, который обеспечивает пользователь в travГ©s неударом в лунку, был формат, который ты желаешь, в этом случае это что-то как "us-1234" или "us-2375" и т.д. Чтобы санкционировать, что данная цепь выполняет разыскиваемый формат, ты можешь воспользоваться регулярными выражениями.

Она expresiГіn регулировать, что он моделирует предыдущему формату, - следующий:

^us-(\d{4})$

Предыдущее представляет, что в начало цепи должна быть буква или следуемая одной s и схема и despuГ©s 4 nГєmeros между 0-9, конец цепи - знак $.

Для того, чтобы ты смог использовать это в тебе applicaciГіn, ты нуждаешься в том, чтобы использовать это следующей формы:

 exprZip = /^us-(\d{4})$/;   //tu expresión regular
 exprZip.test(textoInput);   //pruebas la expresión regular con la cadena que leiste del input y la función regresará true o false.
1
ответ дан 03.12.2019, 21:13

Теги

Похожие вопросы