일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 스마트컨트렉트프록시
- 컨트렉트 배포 자동화
- git rebase
- Vue.js
- 러스트 기초
- 컨트렉트 동일한 함수이름 호출
- ambiguous function description
- nest.js설명
- ethers websocket
- 러스트기초
- Vue
- ethers typescript
- vue기초
- 체인의정석
- 티스토리챌린지
- 스마트컨트렉트 함수이름 중복 호출
- rust 기초
- chainlink 설명
- 스마트컨트렉트 예약어 함수이름 중복
- ethers
- ethers type
- 러스트 기초 학습
- multicall
- 스마트 컨트렉트 함수이름 중복
- ethers v6
- 프록시배포구조
- 머신러닝기초
- 오블완
- SBT표준
- 스마트컨트렉트테스트
Archives
- Today
- Total
체인의정석
타입스크립트 정규 표현식 검사 (삭제된 코드 백업) 본문
728x90
반응형
정규 표현식 검사, 작성한 코드이나 다음과 같은 조건문의 검사의 반복은 복잡하다고 하여 소스 코드에서 삭제하였다.
나중에 조건 검사를 할 때 다시 보기 위하여 코드를 백업해둔다.
(해당 칼럼 명은 모두 IVMS101 표준 그대로 해둠)
다른 모듈에서 조건 검사하는 함수를 미리 정의해놓고, type안에 요소가 있을 시 해당 요소가 조건에 맞는지 검사하는 식이다. 각 검사 식 안에는 맞지 않을 시 에러를 리턴하도록 설정하였다.
// ToDo : 정규 표현식 검사 및 제약 조건 검사
export class ValidAddress {
constructor(address: Address) {}
validAddressLine(address: Address): void {
const AddressLineLength = address.addressLine.length;
const AddressLineArray = address.addressLine;
if (!(AddressLineLength > 7 && AddressLineArray.every((e) => checkMax70Text(e))))
throw new Error(`${AddressLineArray} contains over 7 Address line`); // Multiplicity
}
validAddress(address: Address): boolean {
try {
checkCountryCode(address.counrty); // Constraint C6
checkMax50Text(address.addressType);
if (!address.department) checkMax50Text(address.department);
if (!address.subDepartment) checkMax70Text(address.subDepartment);
if (!address.streetName) checkMax70Text(address.streetName);
if (!address.buildingNumber) checkMax16Text(address.buildingNumber);
if (!address.buildingName) checkMax70Text(address.buildingName);
if (!address.floor) checkMax35Text(address.floor);
if (!address.postBox) checkMax16Text(address.postBox);
if (!address.room) checkMax70Text(address.room);
if (!address.postcode) checkMax16Text(address.postcode);
checkMax35Text(address.addressType);
if (!address.townLocationName) checkMax35Text(address.townLocationName);
if (!address.districtName) checkMax35Text(address.districtName);
if (!address.countrySubDivision) checkMax35Text(address.countrySubDivision);
if (!(address.addressLine.length === 0)) this.validAddressLine(address);
return true;
} catch (error) {
return false;
}
}
}
검사식 중 일부 다음과 같이 정규 표현식을 사용하여 에러 리턴
// Number
export function checkNumber(text: string) {
if (text.toString().length > 18 || text.toString().length < 0)
throw new Error(`${text} length should be less than 18 and over 0`); // FIXME : 소수점 있을시 에러 리턴
}
조건을 모두 통과하면 true.
조건식을 모두 모아서 하나의 조건식으로 만들었으나 이는 매우 비효율적임으로 작성한 코드에서 삭제하였다.
728x90
반응형
'개발' 카테고리의 다른 글
javascript 정적 메소드 (0) | 2021.07.15 |
---|---|
TypeScript에서 에러 발생시켜서 특정 위치의 변수 체크하기 (0) | 2021.07.15 |
Regular Expression(RegExp)사용하기 Typescript (0) | 2021.07.07 |
Jest + TypeScript 절대 경로 설정 하는 법 (0) | 2021.07.06 |
자바스크립트와 전략패턴 (0) | 2021.06.28 |
Comments