Jquery Validate插件仅允许文本

时间:2012-05-03 23:01:53

标签: javascript jquery jquery-plugins validation

我正在使用以下jquery插件

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

我当前的脚本是

<script type="text/javascript" charset="utf-8">
$(document).ready(function($) {  
$("#answer55937X1X3othertext").mask("aaaaaaaaaaaaaaaaaaaaaaaaa",{ placeholder:"#" });
});
</script>

问题:

但实际上我想允许用户只输入任意数量字符的文本。例如:单词,短语甚至句子。所以我认为正则表达式很合适。

问题1:

知道如何在这个插件中实现正则表达式吗?如果没有请建议替代。请包括正则表达式代码。

问题2:(出于好奇)

我确实看过网站,但找不到与正则表达式相关的任何内容。默认情况下,regex是否包含在插件中?我不知道如何检查是否包含该功能。

提前致谢

更新

我尝试了下面的脚本,但它无法正常工作。

    $('question'+QQ' input.text').bind('keypress', function (event) {
var regex = new RegExp("^[a-zA-Z]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
   event.preventDefault();
   return false;
}
    });

3 个答案:

答案 0 :(得分:1)

据我所知,你不能使用'蒙面输入',它不支持你想要的要求。

它实际上适合那些具有“固定长度”的输入,例如

an input with 8 length: 010-55555  (phone numbers)
an input with 8 or 11 length:  086-010-55555 (another phone numbers)

它不支持这个:

this is a sentence that doesn't have fixed words.

因为首先必须使用占位符“#”来填充输入。

如果您想验证输入,只需编写自己的自定义函数,使用Really简单验证或其他jquery验证框架,甚至是您自己的:

<input id="your_field" />

<script>
$("#your_field").blur(function(){
  // your implementation here....
  $(this).val().match(...)  
})
</script>

答案 1 :(得分:0)

如果您想让用户输入他们想要的内容,为什么还需要使用掩码插件?

此外,在查看页面后,它看起来不像插件接受正则表达式(如果我错了请纠正我)。例如,他们使用*字符来表示任何字母数字字符。在正则表达式中,*字符具有特殊含义。

答案 2 :(得分:0)

你好伙伴stackoverflower!我花了大约20分钟左右设计一个jquery插件,我希望你和其他许多人能够实现这个输入屏蔽。请记住,这是非常快速的工作,我希望添加它,但只是让我知道它是否满足您的需求!

https://github.com/bmoyles0117/jQuery-SimpleMask

请随意尝试使用下面的代码实现它,“a”代表字母,“#”代表字母数字,包括空格,“9”当然代表数字。我所做的是在初始配置中添加标志,以表明您是否要允许句号,逗号或短划线。我真的希望这能满足你的需求!

<script src="jquery.simplemask.js"></script>
<script type="text/javascript">
    $(function() {
        $('#test123').simpleMask('aaaaa-####999', {
            allow_periods   : true,
            allow_commas    : true,
            allow_dashes    : true
        });
    });
</script>
<input type="text" id="test123" />