Как я могу получить мое регулярное выражение для замены строчных и прописных с дополнительными переменными - PullRequest
0 голосов
/ 08 января 2019

У меня есть приложение, которое в ВЕЛИКОБРИТАНИИ ОТКРЫВАЕТ, что я хочу, чтобы клиент набрал свой почтовый индекс, и произошло несколько вещей ... 1) я допускаю только A-Z и 0-9 2) в качестве специального символа допускается только пробел

Я получаю то, что хочу, за исключением того, что он допускает прописные и строчные буквы

Я знаю, что / i разрешает любой случай, поэтому, пожалуйста, не указывайте это. Если я удаляю его и клиент набирает, например, «sw10 9ef», они не обращают внимания на то, что набирается, и получают «10 9» для клиентов, которые используют строчные буквы, но правильно, кто использует прописные буквы «SW10 9EF»

Любая помощь будет оценена

Lee

<script>
function postOnly(input) {
    var regex = /[^0-9A-Z ]/gi;
    input.value = input.value.replace(regex, "");
}
</script>




<div class="form-group">
        <label class="col-sm-12 col-md-12 col-lg-12 control-label"><i class="fas fa-map-marked-alt fa-lg"></i> Postal Code ( ZZZZ XXX or ZZZ XXX ) 
</label>
        <div class="col-sm-12 col-md-12 col-lg-12">
            <input type="text" value="<?php echo set_value('postal_code'); ?>" name="postal_code" onkeyup="postOnly(this)" class="form-control" placeholder="Postal Code ( ZZZZ XXX or ZZZ XXX )">
            <br>
        </div>
    </div>

Так что мне нужно изменить регистр с нижнего на верхний при сохранении вышеуказанных требований.

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Вы должны проверить:

  1. В вашем регулярном выражении допускаются как прописные, так и строчные буквы.
  2. После проверки правильности введенного значения в соответствии с вашими требованиями преобразуйте введенное значение в верхний регистр.

    var regex=/[^0-9A-Za-z ]/g;
    if(input.value.match(regex)){
         input.value=input.value.toUpperCase();
    }
    
0 голосов
/ 08 января 2019

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

Вы можете добавить стиль text-transform:uppercase в поле ввода, чтобы все, что пользователь вводит , отображалось в верхнем регистре, но это только визуальный стиль, и если пользователь вводит почтовый индекс в в нижнем регистре, то он будет возвращен во внутреннее приложение в виде строчных букв.

...