something like^\d{1,4}(\.\d{0,2})?$or^(0|[1-9]\d{0,4})(\.\d{0,2})?$for example string[] slist = {"9999.99", "812.12", "88", "12345", "11.123", "012", "0." }; //Regex re = new Regex(@"^\d{1,4}(\.\d{0,2})?$"); Regex re = new Regex(@"^(0|[1-9]\d{0,4})(\.\d{0,2})?$"); foreach(string s in slist) Console.WriteLine("{0} matches? {1}", s, re.IsMatch(s));
string[] slist = {"9999.99",
"812.12",
"88",
"12345",
"11.123",
"012",
"0."
};
//Regex re = new Regex(@"^\d{1,4}(\.\d{0,2})?$");
Regex re = new Regex(@"^(0|[1-9]\d{0,4})(\.\d{0,2})?$");
foreach(string s in slist)
Console.WriteLine("{0} matches? {1}", s, re.IsMatch(s));
(0|([1-9]\d{0,3}))(\.\d{1,2})?
或
(\d|([1-9]\d{1,3}))(\.\d{1,2})?
或
^(\d|([1-9]\d{1,3}))(\.\d{1,2})?$
should be
^(0|[1-9]\d{0,3})(\.\d{0,2})?$
// 控制用户输入
function _MaskInput(oInput, sReg, sInputStr)
{
var re = new RegExp(sReg);
var docSel = document.selection.createRange();
if(docSel.parentElement().tagName.toLowerCase() != "input")
return false;
oSel = docSel.duplicate();
oSel.text = "";
var srcRange = oInput.createTextRange();
oSel.setEndPoint("StartToStart", srcRange);
var str = oSel.text + sInputStr + srcRange.text.substr(oSel.text.length);
return re.test(str);
}
// 只可以输入数字
//bSign 用于判断是否可以输入负号
//nInt 小数点前的位数 nDec 小数点后的位数
function _SetDigitalInput(oInput,nInt,nDec,bSign)
{
if(typeof(bSign) != "boolean")
bSign = false;
oInput.style.imeMode = "disabled";
var sReg = "^";
if(bSign)
sReg += "-?(";
sReg += "\\\\d{1,"+nInt.toString()+"}";
if(nDec > 0)
sReg += "(\\\\.\\\\d{0,"+nDec.toString()+"})?";
if(bSign)
sReg += ")?";
sReg += "$";
oInput.onkeypress = new Function("return _MaskInput(this,'"+sReg+"',String.fromCharCode(event.keyCode))");
oInput.onpaste = new Function("return _MaskInput(this,'"+sReg + "',window.clipboardData.getData('Text'))");
oInput.ondrop = new Function("return _MaskInput(this,'"+sReg + "',event.dataTransfer.getData('Text'))");
}</script>WebControl.Attribute.Add(……);