모듈:StripToNumbers
Module:StripToNumbers| 이 모듈은 베타 등급으로 평가되며 널리 사용할 준비가 되어 있다.이것은 여전히 새로운 것이며, 결과가 예상대로 나오도록 약간의 주의를 기울여 사용해야 한다. |
사용법
이 모듈은 입력에서 매우 기본적인 숫자 데이터, 즉 연속적인 단순 숫자에 대한 첫 번째 일치 데이터를 추출하며, 음수 기호와 소수점을 포함할 수 있지만 지수, 변수 등과 같은 더 이상의 복잡성은 포함할 수 없다.
이것의 주요 기능은 다음과 같은 데이터를 받아들이는 것이다.
70%margin-left: 20px;75.485 Khz그리고 산술적으로 작동할 수 있도록 그것의 숫자 부분을 돌려준다.
각 문자열의 결과 각각:
- 70
- 20
- 75.485
사용 사례
- 주어진 레이아웃 표 셀 치수를 변환하는 중
em,px또는%CSS가 사용하는 맨 수 비율까지flex-grow선언(모든 셀의 단위가 동일한 경우에만 작동하며, 고정 너비 사이드바 및 상대 너비 주 내용 영역의 혼합물을 처리할 수 없음). - 허술한 템플릿 입력을 일반적으로 변환(예: 측정만 원할 때 유닛이 부착된 측정 또는 원치 않는 제거)
"그리고;등장인물 등). - 자동 생성(예: 구식 HTML 4에서 전환 지원)
cellspacing=...현대 CSS에게td {padding: ...;}사방에
제한사항(심각한 사항)
- 방해물이 문자를 포함할 수 있는 경우, 템플리트를 호출할 때 사용하십시오.이것은 결코 해를 끼치지 않는다.
- 따라서: 입력 시
a=70%사용하다{{#invoke:StripToNumbers main 1=a=70%}}→ - 70
- 따라서: 입력 시
- 그렇지 않으면 입력에 다음이 포함될 수 없음
=로서 빠져나가지 않는 한 성격.{{=}}또는&equal;.- 다음 문자가 있을 수 있다.
=반드시 탈출해야 한다
- 다음 문자가 있을 수 있다.
- 현재 이 모듈은 다음 세 가지 일만 수행한다.
- 입력 문자열에서 첫 번째 연속된 숫자를 찾으며, 이 숫자는 다음에 선행될 수 있다.
-(키보드 하이픈으로 된 문자, 공식 유니코드 마이너스 문자 아님)−그리고 십진수를 포함할 수 있다. 그것은 다른 모든 것을 버린다. - 결과가 유효한 수(즉, 다음과 같은 것이 아님)인지 확인한다.
1.2.3또는1-2-3, null도 아니다; 이 테스트는 이 시점에서 중복 코드일 수 있지만, 후회하는 것보다 안전하다. - 선택적으로 (별도의 함수에서) 숫자를 2로 나눈다.
- 입력 문자열에서 첫 번째 연속된 숫자를 찾으며, 이 숫자는 다음에 선행될 수 있다.
- 자유롭게 확장하여 더 많은 작업을 수행하십시오(그리고 이를 어길 방법을 찾으면 더 강력하게 수행).토크 페이지에 문제를 보고하고 모듈의 일반 편집자를 ping하십시오.대부분의 경우 기능을 추가하기보다는 기능을 추가하여 확장하는 것이 가장 안전하다.
main기능을 하다
- 십진수 끝에서 후행 0이 떨어진다.그러한 행동을 멈추기 위해 기능을 추가하는 것이 유용할 수 있으며, 따라서 통화 포맷을 망치지 않도록 (이것은 "정말 숫자인가?" 테스트를 제거해도 신뢰성 있게 할 수 없다) 왜냐하면 반감함수의 호출은 문자열이 아닌 숫자로 작용하고, 그 숫자로 변환되어 수학적으로 r이 잘리게 되기 때문이다.무수한 영점
- 그것은 감당할 수 없다.
=-숫자(또는 그 16진수)인 스타일 문자 도면요소, 명백한 이유로 다음과 같은 이름만 지정됨&equal;nbsp;이는 향후 업그레이드에서 분명히 다루어질 수 있지만, ASCII 문자 번호로 그러한 입력을 잘라내는 것이 특정 사례에서 원하는 용도가 될 수 있기 때문에 별도의 기능으로 수행해야 한다.
호출
기본 사용량:
{{#invoke:StripToNumbers main input }}
결과 값을 2로 나누려면:
{{#invoke:StripToNumbers halve input }}
주와 동일하지만 오차가 아닌 문자열에 숫자가 없을 경우 null을 반환한다(숫자 함수를 포함하는 것으로 사용할 수 있음):
{{#invoke:StripToNumbers mainnull input }}
참고 항목
- 모듈:ConvertNumeric - 숫자를 영어 단어로 변환하고 숫자 형식 간(예: 십진수를 16진수로 변환)
국부적 p = {} 기능을 하다 p.본래의(액자에 넣다) 국부적 더 스트링 = mw.문자 메시지를 보내다.발을 빼다(액자에 넣다.아그[1]) 국부적 onlyNumber onlyNumber = (끈.매치(더 스트링, "%-?[%d%]+")) checkedNumber = 톤넘버(onlyNumber) 만일 checkedNumber == 못을 박다 그때 착오("입력에 유효한 숫자 데이터가 없음") 다른 돌아오다 checkedNumber 종지부를 찍다 종지부를 찍다 기능을 하다 p.반반으로 나누다(액자에 넣다) 국부적 checkedNumber = (p.본래의(액자에 넣다)) 국부적 반감번호 반감번호 = (checkedNumber / 2) 돌아오다 반감번호 종지부를 찍다 기능을 하다 p.메인을 뽑다(액자에 넣다) 국부적 더 스트링 = mw.문자 메시지를 보내다.발을 빼다(액자에 넣다.아그[1]) 국부적 onlyNumber onlyNumber = (끈.매치(더 스트링, "%-?[%d%]+")) checkedNumber = 톤넘버(onlyNumber) 만일 checkedNumber == 못을 박다 그때 돌아오다 못을 박다 다른 돌아오다 checkedNumber 종지부를 찍다 종지부를 찍다 돌아오다 p