输入字段以不同方式格式化数据 - 取决于输入的数据类型

时间:2014-08-27 08:46:15

标签: javascript jquery

我有一个输入字段,该字段链接到可以采用邮政编码或城市的数据库。问题是邮政编码需要采用某种格式,即

CB30AX
cb30ax
sg120js
SG120JS

资本化不是真正的问题,但不能包含任何空格......通过研究,我已经设法将这个脚本放在一起:

<script>
//make sure postcode goes in correct format
$(document).ready(function ()
    {
        $('input[name="sCity"]').change(function (){
            var postCode = $(this).val();

            $(this).val(postCode.replace(/\s/g, '').toUpperCase())
        })
    });
</script>

其中大写所有字母并完全删除空格,但是,在英国,有些城市如:Leigh On SeaCanvey Island有空格,因此上面的代码会将其变为一个单词。如何使代码检测输入是城市还是邮政编码(可能验证邮政编码,如果返回true则会相应地格式化? 提前致谢!

这是FIDDLE

1 个答案:

答案 0 :(得分:2)

如果有数字,则认为它是邮政编码,否则它是城市名称。

http://jsfiddle.net/0zdd6cr3/2

$('input[name="sCity"]').change(function () {
    var postCode = this.value.toUpperCase();
    if(/\d/.test(postCode)) postCode = postCode.replace(/\s/g, '');
    $(this).val(postCode);
});