首页 > 解决方案 > 如何让我的正则表达式用附加变量替换小写字母

问题描述

我有一个应用程序,在英国邮政编码中我希望客户输入他们的邮政编码并且发生了几件事...... 1)我只允许 AZ 和 0-9 2)只允许空格作为特殊字符

我得到了我想要的,除了它允许大写和小写

我知道 /i 允许任何情况,所以请不要指出这一点。如果我删除它并且客户输入例如“sw10 9ef”,他们不会注意输入的内容,并且对于使用小写但正确使用大写“SW10 9EF”的客户得到“10 9”

任何帮助,将不胜感激

<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>

所以我需要它在保持上述要求的同时将案例从低位改为高位。

标签: javascriptregexexpressionuppercase

解决方案


你应该检查:

  1. 您的正则表达式允许大写和小写字符。
  2. 根据您的要求检查您的输入值是否正确后,将您的输入值转换为大写。

    var regex=/[^0-9A-Za-z ]/g;
    if(input.value.match(regex)){
         input.value=input.value.toUpperCase();
    }
    

推荐阅读