JavaScript控制脚和英寸的用户输入

时间:2015-04-10 16:22:08

标签: javascript jquery regex html5

我有一个正则表达式来验证英尺和英寸输入脚输入字段。

正则表达式

^([1-2]?[0-9]{1,3})\'([0-9]|[0-1]{2})\"$

HTML

<label for="ft">Feet:</label>
<input type="text" name="ft" id="ft" value="#form.ft#">

的jQuery

<script>
$.mask.definitions['h'] = '^([1-2]?[0-9]{1,3})\'([0-9]|[0-1]{2})\"$';
$('#ft').mask('h',{placeholder:'0\'0"'});
</script>

$('#ft').mask('???0\'0?0"',{placeholder:'0\'0"'});

如果可选字符在开头怎么办?你有两个选项吗?

我想做什么:
当用户到达该文本框中的页面时,它已经读取0'00“所以当他们开始填写它时,它将开始填写它,保持”'“和”“”已经在他们的框中。在脚侧上升至2000英寸侧仅允许最多11号。

我无法插入像0'00这样的面具或者让符号留在那里以及从左到右开始输入的内容。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用:

^([1-2]?[0-9]{1,3})?\'(0?[0-9]|[0-1]{2})?\"$

验证,但使部分可选。

至于输入保持&#39;和&#34;,将它们放入捕获组:

^([1-2]?[0-9]{1,3})?(\')(0?[0-9]|[0-1]{2})?(\")$

然后你可以分析组$ 1,$ 2,$ 3和$ 4,其中$ 1和$ 3是值,$ 2和$ 4是&#39;和&#34;尊敬。在用户输入时,可能会解析输入,使用此正则表达式将其拆分,并在restoring the caret position时替换输入。或者,您可以等待输入失去焦点,并用生成的解析值替换内容。

示例:

var r = "0'00\"".match(/^([1-2]?[0-9]{1,3})?(\')(0?[0-9]|[0-1]{2})?(\")$/)
// Result: r == ["0'00"", "0", "'", "00", """]

现在,您可以使用连接值替换输入内容:

r.splice(1).join("");