문제

나는 가지고있다 asp:TextBox 돈의 가치를 유지하려면 '1000', '1000,0'및 '1000,00'(쉼표는 러시아 표준으로 인해 구분표입니다).

ValidationExpression 적절한 상태로 사용해야합니다 asp:RegularExpressionValidator?

나는 시도했다 \d+\,\d{0,2} 그러나 소수점 숫자가없는 숫자와 예를 들어 '1000'만 허용하지 않습니다.

도움이 되었습니까?

해결책

\d+(,\d{1,2})?

소수 자릿수가있을 때만 쉼표를 허용하고 쉼표는 전혀 허용하지 않습니다. 물음표는 동일한 것을 의미합니다 {0,1}, 그 후 \d+ 당신은 인스턴스가 0이 있거나 하나의 인스턴스가 있습니다.

,\d{1,2}

Helen이 올바르게 지적했듯이, 비과전 그룹을 사용하는 것으로 충분합니다.

\d+(?:,\d{1,2})?

추가 ?: 괄호는 단지 그룹을위한 것임을 의미합니다. ,\d{1,2} 물음표에 사용하기위한 부분이지만,이 괄호 안에 일치하는 것을 기억할 필요는 없습니다. 이것은 Regex Enginge의 작업이 적기 때문에 성능 향상을 얻습니다.

다른 팁

우리는 돈 검증을 위해이 매우 자유로운 정규 표현을 사용합니다.

new Regex(@"^\-?\(?\$?\s*\-?\s*\(?(((\d{1,3}((\,\d{3})*|\d*))?(\.\d{1,4})?)|((\d{1,3}((\,\d{3})*|\d*))(\.\d{0,4})?))\)?$");

이 모든 것을 허용합니다 : $ 0, 0, (0.0000), .1, .1, .01, .0001, $ .1, $ .01, $ .0001, ($ .1), ($ .01), $ (. 0001) ), 0.1, 0.01, 0.0001, 1., 1111., 1,111., 1, 1.00, 1,000.00, $ 1, $ 1.00, $ 1,000.00, $ 1.0000, $ 1.0000, $ 1,000.0000, -1, -1.00, -1,000.00, -$ 1, -$ 1.00, -$ 1,000.00, -$ 1, -$ 1.00, -$ 1,000.00, $ -1, $ -1.00, $ -1,000.00, $ (1), $ (1.00), $ (1,000.00), $ (1), $ (1.00), $ (1,000.00), ($ 1), ($ 1.00), ($ 1,000.00)

나는 이것을 사용했다 자바 스크립트: C#에서 당신을 위해 사용할 수 있습니다.

var entered = '10.00';
var regex = /^\d+(?:\.\d{2})?$/; // starts with N digits optional ".\d\d"
console.log(entered.match(regex));
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top