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

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++ 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

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 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

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

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++ 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++ 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];

Bài Viết Liên Quan

Chủ Đề