文本输入限制小于31(天)

时间:2016-02-09 04:04:10

标签: javascript regex

我想使用文字输入来表示表格中的一天,但我不知道如何很好地使用这种模式属性。也许我应该使用一些少于31的正则表达式?我也不知道如何制作一个。

它的外观如下:

<input type='text' name='d' size='2' maxlength='2' value='$d'     pattern='[0-3]{1}[1-9]{1}'  required>  

我知道使用select或number会更容易,但我必须以文本形式执行此操作。

3 个答案:

答案 0 :(得分:2)

是的!这是非常可能的。 您需要的正则表达式是function test(data) { var image = 'Some other string'; var div = [ '<a href="/profile/' + data.message.name + '">', '<img src="/images/profiles/' + (data.message.image || image) + '" alt="#"/>', '</a>' ].join(''); alert(div); } test({ message: { name: 'Test Name', image: '' } });

基本上,它会接受任何文字:

  1. 单个数字1到9,
  2. 两位数,其中第一位是1或2,第二位是0到9,
  3. 两位数,其中第一位是3,第二位是0或1
  4. 如果您可以访问JavaScript&amp;你知道这个月,你可以动态地将模式改为

    • ^([1-9]|[12][0-9]|3[01])$,持续30天,或
    • ^([1-9]|[12][0-9]|30)$ 2月非闰年
    • ^([1-9]|1[0-9]|2[0-8])$ 2月闰年
    祝你好运!我以前从未见过^([1-9]|1[0-9]|2[0-9])$属性......很高兴知道!

    了解详情:Matching Numeric Ranges with a Regular Expression

答案 1 :(得分:1)

使用输入类型编号

<input type="number" min="1" max="31" />

答案 2 :(得分:1)

您可以使用JavaScript函数onchange事件 -

<script>
  function handleChange(input) {
    if (input.value < 1) input.value = 1;
    if (input.value > 31) input.value = 31;
  }
</script>

所以在输入框onchange事件中调用javascript函数。

<input type="text" onchange="handleChange(this);" />