"ABC 암소가 달에 XYZ를 뛰어 넘었습니다."문자열에 "ABC"와 "XYZ"사이의 부분 문자열을 가져 오려면 jQuery를 사용하고 싶다고합시다 ? 하위 문자열은 "암소가 뛰어"올라야합니다. 많은 감사합니다!jQuery를 사용하여 하위 문자열 찾기
답변
이것은 주로 DOM 통과 및 조작을위한 jQuery와는 아무런 관련이 없습니다.
var str = "The ABC cow jumped over XYZ the moon";
var sub = str.replace(/^.*ABC(.*)XYZ.*$/m, '$1');
아이디어는 당신이 당신의 개폐 구분 기호를 일치하는 정규 표현식으로 String.replace를 사용하고, 구분 기호 사이에 일치하는 부분 전체 문자열을 대체하는 것입니다 : 당신은 간단한 정규 표현식을 원한다.
첫 번째 인수는 정규 표현식입니다. 꼬리말 m
은 여러 줄에 걸쳐 일치하게합니다. 즉, ABC
과 XYZ
사이의 텍스트에 줄 바꿈이 포함될 수 있습니다. 다음과 같이 나머지는 분해 :
^
시작 문자열의 시작 부분에.*
0 개 이상의 문자ABC
당신의 개방 구분 기호(.*)
일치하는 0 개 이상의 일련의 시리즈 문자XYZ
닫는 구분 기호.*
일련의 0 또는 문자열
두 번째 매개 변수, 대체 문자열의 끝에 이상의 문자
$
경기는 '$ 1'입니다. replace
는 위에 나온 (.*)
부분을 정규 표현식의 괄호 안에 들어간 하위 식으로 대체합니다. 따라서 반환 값은 전체 문자열이며 구분 기호 사이의 부분으로 바뀝니다.jQuery를 사용할 필요가 없습니다. 나는 이런 식으로 뭔가를 할 거라고 :
function between(str, left, right) {
if(!str || !left || !right) return null;
var left_loc = str.indexOf(left);
var right_loc = str.indexOf(right);
if(left_loc == -1 || right_loc == -1) return null;
return str.substring(left_loc + left.length, right_loc);
}
아니오 위의 코드는 버그 무료이지만 아이디어는 표준 substring() 기능을 사용하는 것입니다 보장합니다. 내 경험에 의하면 이러한 유형의 함수는 모든 브라우저에서 동일하게 작동합니다.
jQuery와 meagar의 정규식을 어떻게 사용하는지 보여 주기만하면됩니다. jQuery를 자바 스크립트이기 때문에, 바보 같은 종류의 소리
<p id="grabthis">The ABC cow jumped over XYZ the moon</p>
하면 (다음 jQuery를/자바 스크립트 조합을 사용, 문자열을 잡아하지만, 참조 : 이제 다음 P
태그로 HTML 페이지를 가지고 있다고 가정 해 봅시다 jQuery를) 자바 스크립트 DOM 라이브러리로 :
$(document).ready(function() { // Wait until the document has been fully loaded
var pStr=$("#grabthis").text(); // Grab the text from the P tag and put it into a JS variable
var subStr=pStr.replace(/^.*ABC(.*)XYZ.*$/m, '$1'); // Run the regex to grab the middle string
alert(subStr); // Output the grabbed middle string
});
또는 짧은 버전 :
$(document).ready(function() {
alert($("#grabthis").text().replace(/^.*ABC(.*)XYZ.*$/m, '$1'));
});
기능은 자바 스크립트 기능입니다 교체합니다. 나는 이것이 혼란을 없애기를 바란다.
Meagar, 귀하의 설명은 훌륭하고 명확하게 설명합니다.
그냥 몇 가지 사소한 질문 :
는 relpace 함수의 두 번째 매개 변수에 submatch을 표시하는 방법으로 만 필요한() 괄호 또는이 또한 submatches을 식별하는 것입니다 :/^. *알파벳. XYZ. $ /이 경우에 우리가하려고하는 것에 대해 작동하지 않습니까?
이 일반 식 (7) submatches가 않습니다...
^
을 *
ABC
*
XYZ
*
$
- 가 있는가 $ 1은 fi를 사용하는 것을 의미합니다. 괄호 안의 서브 밋? 처음에는 시리즈에서 두 번째 서브 매치를 사용하는 것을 의미 할 수도 있다고 생각했습니다 (첫 번째 $ 0 임).
감사합니다,
스티브 모든
- 1. 어셈블리에서 하위 문자열 찾기
- 2. 문자열 내의 하위 문자열 찾기
- 3. 하위 문자열 찾기
- 4. 하위 문자열 찾기
- 5. 가장 짧은 하위 문자열 찾기
- 6. 두 문자열 사이의 모든 하위 문자열 찾기
- 7. JQuery를 사용하여 날짜 찾기
- 8. jsonPath를 사용하여 문자열 찾기
- 9. 문자열 내에서 문자열 찾기
- 10. jQuery를 사용하여 문자열에서 키워드 찾기
- 11. jQuery를 사용하여 보이는 항목 찾기
- 12. jQuery를 사용하여 배경색으로 div 찾기
- 13. jQuery를 사용하여 이벤트 객체 찾기
- 14. 현재 포커스가있는 하위 문자열 찾기 및 바꾸기
- 15. 다른 문자열에서 문자열 찾기
- 16. jQuery를 사용하여 테이블 행 인덱스 찾기
- 17. jquery를 사용하여 상위 페이지에서 usercontrol 패널 찾기
- 18. jQuery를 사용하여 테이블의 이전 요소 찾기
- 19. jQuery를 사용하여 내용 찾기 <td>
- 20. jquery를 사용하여 특정 속성을 가진 앵커 찾기
- 21. jQuery를 사용하여 페이지의 모든 URL 찾기
- 22. 하위 문자열 검색 문자열
- 23. JQuery 문자열 변수로 찾기
- 24. 하위 트리를 사용하여 유사한 코드 섹션 찾기
- 25. 테이블 행의 하위 찾기
- 26. ArrayList, StringCollection 또는 List (String 중)에서 하위 문자열 찾기
- 27. GREP/RegEx를 사용하여 문자열 찾기 및 바꾸기
- 28. sed를 사용하여 문자열 찾기 및 바꾸기
- 29. LINQ를 사용하여 문자열 목록과 일치하는 데이터 찾기
- 30. mysql을 사용하여 가능한 모든 문자열 조합 찾기
첫째, 당신은 문자열 조작을 할 jQuery를 사용하지 않는 - 즉 자바 스크립트/ECMAScript를합니다. 둘째, 그 문자열을 잡는 데 사용 된 논리에 대해 더 구체적으로 설명 할 수 있습니까? 패턴이 있습니까? –
jQuery로 태그가 지정되지 않은 jQuery에 대한 질문 –
그럼 왜 jQuery가 필요한가요? 당신을 위해 간단한 자바 스크립트를 사용할 수 없습니다. –