정밀도가 2 인 소수에 대한 간단한 정규식
정밀도가 2 인 10 진수의 정규식은 무엇입니까?
유효한 예 :
123.12
2
56754
92929292929292.12
0.21
3.1
잘못된 예 :
12.1232
2.23332
e666.76
소수점은 선택 사항 일 수 있으며 정수도 포함될 수 있습니다.
유효한 정규식 토큰은 구현에 따라 다릅니다. 내가 아는 가장 일반적인 형태는 다음과 같습니다.
[0-9]+(\.[0-9][0-9]?)?
가장 컴팩트 한
\d+(\.\d{1,2})?
둘 다 소수점 이하 자릿수 앞뒤에 한 자리 이상이 있어야한다고 가정합니다.
전체 문자열이이 형식의 숫자가되도록하려면 표현식을 시작 및 끝 태그 (예 : Perl 형식)로 랩핑하십시오.
^\d+(\.\d{1,2})?$
추가 : ()에 분수 부분을 감쌌 습니까? 선택적으로 만들 수 있습니다. 여기에는 "12"와 같은 양식이 제외됩니다. 포함하면 더 비슷 ^\d+\.?\d{0,2}$
합니다.
추가 : 이 형식 ^\d{1,6}(\.\d{1,2})?$
을 사용 하여 반복을 중지하고 10 진수 값의 전체 부분을 제한하십시오.
^[0-9]+(\.[0-9]{1,2})?$
그리고 정규 표현식은 읽기가 끔찍하기 때문에 이해하기가 쉽지 않으므로 여기에 자세한 내용이 있습니다.
^ # Start of string
[0-9]+ # Require one or more numbers
( # Begin optional group
\. # Point must be escaped or it is treated as "any character"
[0-9]{1,2} # One or two numbers
)? # End group--signify that it's optional with "?"
$ # End of string
당신은 대체 할 수있는 [0-9]
과 \d
(을 포함한 대부분의 정규식 구현에 PCRE 가장 일반적인). [0-9]
읽기 쉽다고 생각 되는대로 그대로 두었 습니다.
또한, 내가 그것을 확인하는 데 사용한 간단한 파이썬 스크립트는 다음과 같습니다.
import re
deci_num_checker = re.compile(r"""^[0-9]+(\.[0-9]{1,2})?$""")
valid = ["123.12", "2", "56754", "92929292929292.12", "0.21", "3.1"]
invalid = ["12.1232", "2.23332", "e666.76"]
assert len([deci_num_checker.match(x) != None for x in valid]) == len(valid)
assert [deci_num_checker.match(x) == None for x in invalid].count(False) == 0
선택적 빼기 부호를 포함시키고 015
(8 진수로 오인 할 수있는) 숫자를 허용하지 않으려면 다음과 같이 작성하십시오.
-?(0|([1-9]\d*))(\.\d+)?
천 단위 구분 기호가없는 숫자의 경우이 간단한 소형 정규 표현식이 좋습니다.
\d+(\.\d{2})?|\.\d{2}
또는 2의 정밀도로 제한되지 않습니다.
\d+(\.\d*)?|\.\d+
후자 일치
1
100
100
100.74
100.7
0.7
0.7
0.72
그리고 그것은 빈 문자열과 일치하지 않습니다 (\ d *.? \ d *처럼)
나는 이것을 소수점 이하 두 자리까지 사용합니다.
(^(\+|\-)(0|([1-9][0-9]*))(\.[0-9]{1,2})?$)|(^(0{0,1}|([1-9][0-9]*))(\.[0-9]{1,2})?$)
통과 :
.25
0.25
10.25
+0.25
는 통과하지 않습니다 :
-.25
01.25
1.
1.256
^[0-9]+(\.([0-9]{1,2})?)?$
12.
받아 들여지 는 것을 만들 것 입니다. 이것은 일반적으로 받아 들여지는 것이 아니라 만약 "유연성"이 필요한 경우, 한 가지 방법입니다. 물론 [0-9]
로 대체 할 수는 \d
있지만이 방법으로 더 읽기 쉽습니다.
이 시도
(\\+|-)?([0-9]+(\\.[0-9]+))
긍정적이고 부정적인 징후도 허용됩니다.
주요 답변은 유효 5.
하거나 5,
입력 하기 때문에 잘못되었습니다
이 코드는 그것을 처리합니다 (그러나 예제에서는 음수가 금지되어 있습니다).
/^[0-9]+([.,][0-9]{1,2})?$/;
결과는 다음과 같습니다.
true => "0"/ true => "0.00"/ true => "0.0"/ true => "0,00"/ true => "0,0"/ true => "1,2"true => "1.1"/ true => "1"/ true => "100"true => "100.00"/ true => "100.0"/ true => "1.11"/ true => "1,11"/ false => "-5"/ false => "-0.00"/ true => "101"/ false => "0.00.0"/ true => "0.000"/ true => "000.25"/ false => ".25" / true => "100.01"/ true => "100.2"/ true => "00"/ false => "5." / false => "6,"/ true => "82"/ true => "81,3"/ true => "7"/ true => "7.654"
preg_match("/^-?\d+[\.]?\d\d$/", $sum)
일반적으로 무제한 소수점 이하 자릿수 :
^-?(([1-9]\d*)|0)(.0*[1-9](0*[1-9])*)?$
.
당신은을 할 필요가 없습니다 e
에 e666.76
고려?
와
(e|0-9)\d*\d.\d{1,2)
내 대답도 추가하면 누군가가 유용하다고 생각하거나 올바른 것일 수도 있습니다.
function getInteger(int){
var regx = /^[-+]?[\d.]+$/g;
return regx.test(int);
}
alert(getInteger('-11.11'));
이것은 나와 함께 일했다 :
(-?[0-9]+(\.[0-9]+)?)
그룹 1 은 실수이고 그룹 2 는 분수입니다.
내 프로젝트로 시도했습니다. 이렇게하면 + | -
부호가있는 숫자도 허용됩니다 .
/^(\+|-)?[0-9]{0,}((\.){1}[0-9]{1,}){0,1}$/
Chrome 56은 유형 번호와 함께 이러한 종류의 패턴을 허용하지 않습니다 (Chrome 56은 11.11. 추가.). 유형을 텍스트로 진행합니다.
이것은 지수와 최대 2 자리의 십진수를 허용합니다.
^[+-]?\d+(\.\d{2}([eE](-[1-9]([0-9]*)?|[+]?\d+))?)?$
function DecimalNumberValidation() {
var amounttext = ;
if (!(/^[-+]?\d*\.?\d*$/.test(document.getElementById('txtRemittanceNumber').value))){
alert('Please enter only numbers into amount textbox.')
}
else
{
alert('Right Number');
}
}
이 함수는 10 진수 숫자의 유효성을 검사합니다. 날씨 숫자는 소수점 이하 자릿수를 가지고 있습니다. 경고 메시지가 나타납니다.
감사... :)
'IT' 카테고리의 다른 글
ng-click을 사용하여 배열에서 항목 또는 객체를 어떻게 삭제합니까? (0) | 2020.04.01 |
---|---|
'git log'로 첫 번째 커밋을 표시하는 방법은 무엇입니까? (0) | 2020.04.01 |
디렉토리에서 모든 Python 단위 테스트를 어떻게 실행합니까? (0) | 2020.04.01 |
점선 테두리 점 사이의 공간을 늘리는 방법 (0) | 2020.04.01 |
Xcode 8에서 파생 데이터를 어떻게 삭제합니까? (0) | 2020.04.01 |