0

我正在使用以下 jquery 插件

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

我当前的脚本是

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

问题:

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

问题一:

知道如何在这个插件中实现正则表达式吗?如果不是,请提出替代方案。请也包括正则表达式代码。

问题2:(出于好奇)

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

提前致谢

更新:

我尝试了下面的脚本,但它不起作用。

    $('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;
}
    });
4

3 回答 3

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.

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

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

<input id="your_field" />

<script>
$("#your_field").blur(function(){
  // your implementation here....
  $(this).val().match(...)  
})
</script>
于 2012-05-03T23:09:11.517 回答
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" />
于 2012-05-03T23:55:20.330 回答
0

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

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

于 2012-05-03T23:10:38.890 回答