궁극적으로 정수만 입력 할 수있는 마스크가 필요하거나 소수점/마침표를 입력하는 경우 소수점 뒤에 0-2 자리를 사용할 수 있습니다.정규 표현식을 자바 스크립트 입력 마스크로 바꾸기
유효한 입력
1
1.
1.1
1.11
111111111
111111111.
111111111.1
111111111.11
잘못된 입력
a
a.
1.a
1.111
1.1111
- 문자열은 숫자 문자의 수를 허용하지만 단지 1 소수점/기간
- 기간/소수가 존재하는 경우 허용 : 소수점 이하 2 자리 문자 만 허용
이 정규 표현식은 그 작업을 수행합니다
^\d*\.?([\d]){0,2}$
는 지금은 입력에 마스크로이를 적용해야합니다.
Robin Herbots' Inputmask을 사용하고 있습니다. 나는 정말로이 일을하는 데 어려움을 겪고있다.
별칭 currency
이 있다는 것을 알고 있지만 원하는대로 정확하게 작동하지 않습니다. 내가 원하는 것은 입력이 없으면 입력이 초점/비 초점에서 공백으로 기본 설정되는 것입니다. currency
의 기본값은 0.00
입니다. 또한 사용자가 필드에서 모든 항목을 삭제할 수 있도록 비워 둘 수 있습니다. currency
은 입력을 비워 두지 않습니다. 대신에만 0.00
필드를 떠날 수 있습니다.
$('.moneyfield').inputmask("999", {rightAlign: true, numericInput: true});
특정 마스크는 "999"자리에 있어야합니다. 내장 된 마스크를 사용하는 방법을 알 수 없었기 때문에 정규 표현식을 마스크에 삽입하려고했습니다. 지금까지 두 가지 전략으로 실패했습니다.
또 다른 시도는 currency
별칭을 사용하고 내가 원하는대로 오버 라이드했습니다. 나도 그걸로 성공하지 못했습니다. 다음은 currency
마스크의 정의입니다.
currency: {
prefix: "$ ",
groupSeparator: ",",
alias: "numeric",
placeholder: "0",
autoGroup: !0,
digits: 2,
digitsOptional: !1,
clearMaskOnLostFocus: !1
}
설명이없는 투표가 있습니까? – Neil
HTML5에서 입력의 'pattern' 속성을 쉽게 사용할 수 있습니다. 그것은 원하는대로 정규 표현식으로 입력 요소를 마스킹 할 수 있습니다. [documentation] (http://www.w3schools.com/TAGS/att_input_pattern.asp) –
@VivekPradhan 훌륭한 제안을 확인하십시오. 불행히도 Safari에서 작동해야하며 Safari에서는이 기능이 지원되지 않습니다. – Neil