문제

HTML 요소의 클래스 이름에서 검색된이 샘플 텍스트가 있습니다.

rich-message err-test1 erroractive
rich-message err-test2 erroractive
rich-message erroractive err-test1
err-test2 rich-message erroractive

각 예제에서 "test1"/"test2"데이터를 일치 시키려고합니다. 나는 현재 "err-test1"유형의 단어와 일치하는 다음 regex를 사용하고 있습니다. 하이픈 (-) 이후 데이터 만 제한하는 방법을 알 수 없습니다.

/err-(\S*)/ig

이 벽에 머리가 두드려가 아파요.

도움이 되었습니까?

해결책

내가 읽고있는 것에서 당신의 코드는 이미 작동합니다.

Regex.exec() 성공에 대한 결과를 반환합니다.

배열의 첫 번째 요소 (인덱스 0)는 전체 문자열을 반환 한 후 모든 문자열을 반환합니다. () 밀폐 된 요소 가이 배열로 밀려납니다.

var string = 'rich-message err-test1 erroractive';
var regex = new RegExp('err-(\S*)', 'ig');
var result = regex.exec(string);

alert(result[0]) --> returns err-test1
alert(result[1]) --> returns test1

다른 팁

당신은 'err- ([^ n r]*)를 시도 할 수 있습니다. 그러나 그것이 문제라고 확신하는 것이 확실합니까? 첫 번째 캡처뿐만 아니라 전체 결과를 사용하고 있습니까?

이후의 물건은 결과 배열에 있어야합니다. 첫 번째 항목은 모든 일치하는 텍스트 (예 : "err-test1")이고 다음 항목은 캡처 괄호 (예 : "test1")의 일치입니다.

myregex = /err-(\S*)/ig;
mymatch = myregex.exec("data with matches in it");
testnum = mymatch[1];

여기에 있습니다 참조 사이트.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top