2014-12-19 41 views
2

如何禁止用戶在文本框的輸入舞臺上鍵入無效的羅馬數字。 例如: VV或IXI不是有效的羅馬數字, 所以我想開發功能,不允許用戶在IX或V之後鍵入V. 我曾經嘗試這樣做(meioMask插件):使用Jquery的文本框的有效羅馬數字遮罩

function addMasks() { 
     jQuery.mask.rules = { 
        'A': /^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$/, 
        $('#<%=tbSeries.ClientID%>').setMask('AAAAAAA');  
     }; 

但這只是面具工作的每個符號,而不是整數。

+2

你使用了哪個掩碼插件? – mplungjan

+0

對不起,我甚至不知道,只是支持一箇舊項目。該功能已經由以前的開發人員編寫。 –

+0

所以找出答案。查看包含的JS文件 - 可能有版權信息 – mplungjan

回答

0

正則表達式是正確的,但它看起來像meioMask代碼是不正確的。

試試這個:

$.mask.masks.roman = {mask: 'M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})'}; 
$('#<%=tbSeries.ClientID%>').setMask('roman'); 

正則表達式覆蓋整個數字,不是每個數字。因此,使用正則表達式作爲完整的掩碼(不像AAAAAAA那樣重複)。