이전 글 "js는 주어진 하위 문자열이 존재하는지 어떻게 알 수 있습니까?"에서는 문자열에서 해당 하위 문자열이 처음 또는 마지막으로 나타나는 위치를 구하는 방법을 소개했습니다. 이번에는 난이도를 높이고 문자열에서 하위 문자열의 모든 항목을 가져오는 방법을 알아봅니다.
이전 기사에서 indexOf() 및 lastIndexOf() 함수를 사용하여 하위 문자열의 첫 번째 발생 위치와 마지막 발생 위치를 얻을 수 있다는 것을 배웠습니다. 하위 문자열을 찾을 수 없으면 -1이 반환됩니다.
이 두 함수 모두 선택적인 두 번째 매개변수인start
를 받을 수 있습니다. 값은 검색을 시작할 문자열의 위치를 나타내는 정수만 가능합니다. /코드> ~길이-1
. lastIndexOf() start 매개변수를 지정하면 문자열의 지정된 위치에서 뒤에서 앞으로 검색합니다.start
,值只能是一个整数,表示从字符串中的哪个位置开始搜索,取值范围是0
~length-1
。lastIndexOf()如果指定了start参数,则在一个字符串中的指定位置从后向前搜索。
利用这个可选的第二个参数start和循环语句,我们就可以计算给定子串(包含一个或多个字符)的全部出现位置。
首先看看使用indexOf()是怎么统计给定字符在字符串的所有出现位置
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.indexOf("e"); while(pos > -1){ positions.push(pos); //将出现位置赋给数组 pos = stringValue.indexOf("e",pos + 1); //从给定字符出现位置的后一位开始查找 } console.log(positions);//"3,24,32,35,52"
分析:先使用indexOf("e")
获取第一次出现位置并赋值给变量pos;然后使用while语句通过循环调用indexOf(),不断将查找起始位置设置为“pos + 1
”,从给定字符出现位置pos的后一位开始查找,获取下一个出现位置;直到查找不到,返回-1结束。因此输出结果为:
可以看出,给定字符“e
var stringValue = "Lorem ipsum dolor sit amet, consectetur adipisicing elit"; var positions = new Array(); var pos = stringValue.lastIndexOf("e"); while(pos > -1){ positions.push(pos); pos = stringValue.lastIndexOf("e",pos - 1); } console.log(positions);//"3,24,32,35,52"
indexOf("e")
를 사용하여 첫 번째 발생을 가져오고 할당합니다. 값 pos; 변수를 지정한 다음 while 문을 사용하여 루프를 통해 indexOf()를 호출하고 검색 시작 위치를 "
pos + 1
"로 지속적으로 설정하고 마지막 숫자부터 검색을 시작합니다. 주어진 문자 위치 pos, 찾을 수 없을 때까지 다음 발생 위치를 가져오며, -1이 반환됩니다. 따라서 출력 결과는 다음과 같습니다.
문자열 stringValue에 주어진 문자 "e
"가 5번 나타나는 것을 알 수 있습니다. 문자열 위치가 1이 아닌 0에서 시작하므로 발생 위치는 각각 3, 24입니다. , 32, 35, 52.
그런 다음 lastIndexOf()를 사용하여 문자열에서 특정 문자의 모든 발생 횟수를 계산하는 방법을 살펴보겠습니다.
rrreee분석: lastIndexOf()를 사용하여 모든 발생 횟수를 얻는 것은 실제로 indexOf()를 사용하는 것과 유사하지만 lastIndexOf ( )는 마지막으로 나타나는 위치를 반환하므로 루프를 돌릴 때마다 검색 시작 위치를 "pos - 1"로 설정해야 합니다.출력 결과를 보면
문자열 stringValue에서 얻은 주어진 문자 "e"의 발생 위치가 모두 역순으로 되어 있으며 순서는 52, 35, 32, 24, 3. 그렇습니다. 필요한 경우 다음 내용을 읽어보세요. javascript 고급 튜토리얼위 내용은 JS 문자열 학습: 주어진 문자의 모든 발생 위치를 계산합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!