>

html에 텍스트 상자가 있습니다. 사용자가 다음 범위 만 입력하도록 허용하고 싶습니다

0-9 및 NA

2 가지 경우가 있습니다 1 : 사용자 입력 범위는 0-9 숫자이며 2 : 사용자 입력 만 NA (NA는 해당 없음을 나타냄)

사용자가이 작업을 수행하는 방법

다음 코드를 시도하지만 작동하지 않습니다

<input type = "number" autocomplete="off" class = "form-control"  name="Personal_Weapons_Price" id = "Personal_Weapons_Price"   required  onkeyup="this.value = this.value.toUpperCase();" pattern="[^0-9NA]+" />

친절한 도움이 필요합니다

공중 감사합니다


  • 답변 # 1

    이 방법 추가 oninput="this.value = this.value.toUpperCase().replace(/[^NA0-9]/, '')"

    <input type="text" oninput="this.value = this.value.toUpperCase().replace(/[^NA0-9]/, '')" />
    
    

  • 답변 # 2

    하나 이상의 숫자 또는 NA 를 찾는 다음 패턴을 사용할 수 있습니다. .

    ^(\d+|NA)$
    
    

  • 답변 # 3

    올바른 패턴은

    pattern="^(\d+|NA)$"
    
    

    na 와도 일치 시키려면  ( onkeyup 를 제거 할 수 있습니다  청취자) :

    pattern="^(\d+|NA|na)$"
    
    

    수정: "NA"를 쓰려면 type 를 변경해야합니다   number 의 속성 유형   text 로 .

    <input 
        type="text" 
        autocomplete="off" 
        class="form-control" 
        name="Personal_Weapons_Price" 
        id="Personal_Weapons_Price" 
        required 
        pattern="^(\d+|NA|na)$" 
    />
    
    

관련 자료

  • 이전 reactjs - 날짜 형식으로 필드에 날짜를 쓰는 방법은 무엇입니까?
  • 다음 문자열에서 소수를 구문 분석하기 위해 Swift의 JSON 로더를 강제하는 방법