[英]HTML input field restricted with regular expression pattern
我想限制HTML輸入字段中的用戶輸入。
它是一個接受十進制重量和單位(kg,lbs,g,t等)的字段。
以下是一些有效的示例輸入:
10.45 kg
125.5 kg
120.35 lbs
160 lbs
1200.16 g
24.6 t
我正在使用以下URL中提到的JQuery插件: http : //www.thimbleopensource.com/tutorials-snippets/jquery-plugin-filter-text-input
但它不適用於復雜的模式。 任何人都可以幫我用正則表達式來實現結果嗎?
找到下面的完整代碼:
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="/js/jquery/jquery-2.1.4.js" type="text/javascript"></script>
<script src="/js/jquery/jquery.filter_input.js" type="text/javascript"></script>
<script type="text/javascript">
<!--//
$(document).ready(function(){
$('#input_2').filter_input({ regex: '\d+(?:.\d+)?\s(?:kg|lbs|t)' });
});
//-->
</script>
</head>
<body>
Weight: <input id="input_2" type="text" size="20" />
</body>
</html>
如果使用HTML5是一個選項,那么你可以在輸入中包含一個模式屬性,例如使用Pranav C Balan的正則表達式:
<input type="text" name="weight" value="" pattern="^\d+(?:\.\d+)?\s*(?:kg|lbs|t)$" />
在這種情況下,以下不是正確的答案。 正如@stribizhev所評論的那樣,您使用的插件不允許復雜的正則表達式驗證。 它會根據正則表達式檢查您鍵入的每個字符,而不是整體驗證字段。
遺憾的是,這種驗證似乎不適用於您的插件。
以下匹配您的所有示例:
^\d+(\.\d+)?\s(g|lbs?|kg|t)$
這分解如下:
^ # Matches start of string
\d+ # 1 or more digits
(\.\d+)? # Optionally followed by a decimal point and more digits
\s # Whitespace
(g|lbs?|kg|t) # Any of g, lb, lbs, kg, t
$ # Match end of string
這里的例子(regex101.com)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.