2017-02-04 2 views
1

입력 문자열에 슬래시, 쉼표 또는 점을 포함해서는 안되는 표현식을 만들려고합니다.ng-pattern에 일치하는 정규 표현식

<form name="myForm"> 
    <div class="col-sm-4"> 
     <input class="form-control" 
     type="text" 
     data-ng-model="model_name" 
     name="modelName" 
     ng-pattern="/^[\/,.]/" required> 
     <div ng-messages="myForm.$submitted && myForm.modelName.$error" role="alert"> 
     <div class="alert alert-danger" ng-message="pattern">Special characters [/ , .] are not allowed.</div> 
     <div class="alert alert-danger" ng-message="required">This field is required.</div> 
     </div> 
    </div> 
</form> 

정규 표현식 /^[\/,.]/ 제대로 대괄호 안에있는 모든 문자와 일치하지만 문제는 이러한 ABC 또는 abc_def 또는 다른 문자열로 입력 일반 문자열로 저를 허용하지 않습니다 것입니다. 정규 표현식에 대한 깊은 지식이 없으며이 문제를 해결하는 방법을 알지 못합니다. 도와주세요. 귀하의 regex

답변

2

잘못, ^[] 안에 무엇인지 아무것도하지만 일치하는 블록 [] 내부 ^를 사용하는 경우, 정규식에서는, [^/.,]에 넣어 /., 제외한 모든 문자와 일치하기 위해 [] 안에 있어야합니다.

enter image description here

정규식을 테스트하는 것이 유용이 웹 : http://www.regexpal.com/

+0

솔루션이 작동합니다. 나는 대괄호 뒤에 +를 사용하고 g를 제거했다. 이 패턴을 여기에서 테스트했습니다. [https://docs.angularjs.org/api/ng/directive/ngPattern] 왜 저에게 효과가 있는지 모르겠습니다. 나는 또한'myForm.modelName. $ error'를'myForm.modelName. $ valid'으로 변경했습니다. – AMahajan

+0

'ng-pattern = "/[^\/,.]+/" "'$ scope.regex ="[^ \ /,] + "'를 작성하고'ng-pattern =" 정규 표현식 "과 그것을 효과. 그것에 대한 생각이 있습니까? – AMahajan

+0

저는 각도에 익숙하지 않습니다, 죄송합니다. patter가'ng-pattern = "regex"' – elbaulp

관련 문제