Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Tôi muốn có được vị trí bắt đầu của sự xuất hiện

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
6 của
const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
7 với một cái gì đó như thế này:

var string = "XYZ 123 ABC 456 ABC 789 ABC";
getPosition(string, 'ABC', 2) // --> 16

Bạn sẽ làm điều này như thế nào?

Đã hỏi ngày 23 tháng 1 năm 2013 lúc 13:00Jan 23, 2013 at 13:00

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Adam Halaszadam HalaszAdam Halasz

56.3K63 Huy hiệu vàng146 Huy hiệu bạc212 Huy hiệu Đồng63 gold badges146 silver badges212 bronze badges

2

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)

MPLUNGJAN

161K27 Huy hiệu vàng170 Huy hiệu bạc228 Huy hiệu đồng27 gold badges170 silver badges228 bronze badges

Đã trả lời ngày 23 tháng 1 năm 2013 lúc 13:01Jan 23, 2013 at 13:01

Denys Séguretdenys SéguretDenys Séguret

363K84 Huy hiệu vàng770 Huy hiệu bạc742 Huy hiệu Đồng84 gold badges770 silver badges742 bronze badges

7

Bạn cũng có thể sử dụng Chuỗi Indexof mà không cần tạo bất kỳ mảng nào.

Tham số thứ hai là chỉ mục để bắt đầu tìm kiếm trận đấu tiếp theo.

function nthIndex(str, pat, n){
    var L= str.length, i= -1;
    while(n-- && i++

Đã trả lời ngày 23 tháng 1 năm 2013 lúc 14:31Jan 23, 2013 at 14:31

Kennebeckennebeckennebec

101K31 Huy hiệu vàng104 Huy hiệu bạc126 Huy hiệu đồng31 gold badges104 silver badges126 bronze badges

5

Làm việc với câu trả lời của Kennebec, tôi đã tạo một hàm nguyên mẫu sẽ trả về -1 nếu không tìm thấy sự xuất hiện thứ n thay vì 0.

String.prototype.nthIndexOf = function(pattern, n) {
    var i = -1;

    while (n-- && i++ < this.length) {
        i = this.indexOf(pattern, i);
        if (i < 0) break;
    }

    return i;
}

Đã trả lời ngày 15 tháng 12 năm 2013 lúc 19:42Dec 15, 2013 at 19:42

3

Bởi vì đệ quy luôn là câu trả lời.

function getPosition(input, search, nth, curr, cnt) {
    curr = curr || 0;
    cnt = cnt || 0;
    var index = input.indexOf(search);
    if (curr === nth) {
        if (~index) {
            return cnt;
        }
        else {
            return -1;
        }
    }
    else {
        if (~index) {
            return getPosition(input.slice(index + search.length),
              search,
              nth,
              ++curr,
              cnt + index + search.length);
        }
        else {
            return -1;
        }
    }
}

Đã trả lời ngày 23 tháng 1 năm 2013 lúc 13:15Jan 23, 2013 at 13:15

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Florian Margaireflorian MargaineFlorian Margaine

56.4K14 Huy hiệu vàng90 Huy hiệu bạc116 Huy hiệu đồng14 gold badges90 silver badges116 bronze badges

1

Đây là giải pháp của tôi, chỉ lặp lại chuỗi cho đến khi các trận đấu

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
8 đã được tìm thấy:

String.prototype.nthIndexOf = function(searchElement, n, fromElement) {
    n = n || 0;
    fromElement = fromElement || 0;
    while (n > 0) {
        fromElement = this.indexOf(searchElement, fromElement);
        if (fromElement < 0) {
            return -1;
        }
        --n;
        ++fromElement;
    }
    return fromElement - 1;
};

var string = "XYZ 123 ABC 456 ABC 789 ABC";
console.log(string.nthIndexOf('ABC', 2));

>> 16

Đã trả lời ngày 23 tháng 1 năm 2013 lúc 14:00Jan 23, 2013 at 14:00

AlnitakalnitakAlnitak

330K70 Huy hiệu vàng404 Huy hiệu bạc487 Huy hiệu đồng70 gold badges404 silver badges487 bronze badges

Phương pháp này tạo ra một hàm gọi cho chỉ mục xuất hiện thứ n được lưu trữ trong một mảng

function nthIndexOf(search, n) { 
    var myArray = []; 
    for(var i = 0; i < myString.length; i++) { //loop thru string to check for occurrences
        if(myStr.slice(i, i + search.length) === search) { //if match found...
            myArray.push(i); //store index of each occurrence           
        }
    } 
    return myArray[n - 1]; //first occurrence stored in index 0 
}

Đã trả lời ngày 31 tháng 5 năm 2016 lúc 15:00May 31, 2016 at 15:00

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Sharon Choesharon ChoeSharon Choe

4093 Huy hiệu bạc8 Huy hiệu Đồng3 silver badges8 bronze badges

1

Cách ngắn hơn và tôi nghĩ dễ dàng hơn, mà không tạo ra các chuỗi không cần thiết.

const findNthOccurence = (string, nth, char) => {
  let index = 0
  for (let i = 0; i < nth; i += 1) {
    if (index !== -1) index = string.indexOf(char, index + 1)
  }
  return index
}

Đã trả lời ngày 21 tháng 4 năm 2020 lúc 20:35Apr 21, 2020 at 20:35

PiotrpiotrPiotr

192 Huy hiệu Đồng2 bronze badges

1

Một giải pháp đơn giản chỉ cần thêm chuỗi, ký tự và idx:

function getCharIdx(str,char,n){
  let r = 0
  for (let i = 0; i

Đã trả lời ngày 3 tháng 2 năm 2021 lúc 21:08Feb 3, 2021 at 21:08

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Camille Basbouscamille BasbousCamille Basbous

2454 Huy hiệu vàng11 Huy hiệu bạc31 Huy hiệu đồng4 gold badges11 silver badges31 bronze badges

Sử dụng

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
9 và đệ quy:Recursion:

Trước tiên, hãy kiểm tra xem vị trí thứ n có được vượt qua lớn hơn tổng số lần xuất hiện của chuỗi con hay không. Nếu được thông qua, đệ quy đi qua từng chỉ số cho đến khi tìm thấy cái thứ n.

var getNthPosition = function(str, sub, n) {
    if (n > str.split(sub).length - 1) return -1;
    var recursePosition = function(n) {
        if (n === 0) return str.indexOf(sub);
        return str.indexOf(sub, recursePosition(n - 1) + 1);
    };
    return recursePosition(n);
};

Đã trả lời ngày 30 tháng 8 năm 2017 lúc 2:05Aug 30, 2017 at 2:05

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
0

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

matthias_h

11.3k9 Huy hiệu vàng21 Huy hiệu bạc40 Huy hiệu đồng9 gold badges21 silver badges40 bronze badges

Đã trả lời ngày 21 tháng 2 năm 2019 lúc 20:50Feb 21, 2019 at 20:50

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Tôi cũng cần một hàm có thể tìm kiếm từ cuối chuỗi vì vậy tôi đã viết điều này:

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
1

Usage:

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
2

Tomerikoo

16.8K15 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu đồng15 gold badges39 silver badges57 bronze badges

Đã trả lời ngày 8 tháng 11 năm 2021 lúc 9:58Nov 8, 2021 at 9:58

T Mackt MackT Mack

8603 Huy hiệu vàng12 Huy hiệu bạc25 Huy hiệu Đồng3 gold badges12 silver badges25 bronze badges

Sử dụng

function nthIndex(str, pat, n){
    var L= str.length, i= -1;
    while(n-- && i++
0:

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
3

Tomerikoo

16.8K15 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu đồng15 gold badges39 silver badges57 bronze badges

Đã trả lời ngày 8 tháng 11 năm 2021 lúc 9:58Jan 4, 2018 at 11:04

T Mackt Macksk8terboi87 ツ

8603 Huy hiệu vàng12 Huy hiệu bạc25 Huy hiệu Đồng3 gold badges33 silver badges45 bronze badges

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
4

Sử dụng

function nthIndex(str, pat, n){
    var L= str.length, i= -1;
    while(n-- && i++
0:Sep 19 at 9:54

Hướng dẫn how to find second occurrence of a character in a string in javascript - cách tìm lần xuất hiện thứ hai của một ký tự trong chuỗi trong javascript

Đã trả lời ngày 4 tháng 1 năm 2018 lúc 11:04

const string = "XYZ 123 ABC 456 ABC 789 ABC";

function getPosition(string, subString, index) {
  return string.split(subString, index).join(subString).length;
}

console.log(
  getPosition(string, 'ABC', 2) // --> 16
)
5

sk8terboi87 sk8terboi87 ツJun 30, 2016 at 4:00

Làm thế nào để indexof hoạt động trong javascript?

indexof () phương thức indexof (), đưa ra một đối số: một chuỗi con để tìm kiếm, tìm kiếm toàn bộ chuỗi gọi và trả về chỉ mục của lần xuất hiện đầu tiên của chuỗi con được chỉ định.a substring to search for, searches the entire calling string, and returns the index of the first occurrence of the specified substring.

Đâu là sự xuất hiện thứ hai của một ký tự trong một chuỗi trong CPP?

Chỉ cần sử dụng 1 để tìm sự xuất hiện thứ hai.

Phương pháp nào được sử dụng để tìm kiếm một chuỗi con trong JavaScript?

Trong JavaScript, indexof () là một phương thức chuỗi được sử dụng để tìm vị trí của chuỗi con trong chuỗi.

Đâu là sự xuất hiện thứ hai của một ký tự trong một chuỗi PHP?

Giải pháp đơn giản nhất cho trường hợp cụ thể này là sử dụng tham số bù: $ pos = strpos ($ thông tin, '-', strpos ($ thông tin, '-') + 1);use the offset parameter: $pos = strpos($info, '-', strpos($info, '-') + 1);