Tôi đã đến với câu hỏi này bởi vì tôi cần những gì OP đã hỏi nhưng hơn những gì các câu trả lời khác đưa ra [chúng chính xác về mặt kỹ thuật, nhưng quá tối thiểu cho mục đích của tôi]. Tôi đã làm giải pháp của riêng mình; Có lẽ nó sẽ giúp người khác.
Giả sử chuỗi của bạn là 'Version 12.34.56'
. Nếu bạn sử dụng '.'
để chia, các câu trả lời khác sẽ có xu hướng cung cấp cho bạn ____10, khi có thể những gì bạn thực sự muốn là
/**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
1 [tức là mọi thứ từ lần xuất hiện đầu tiên thay vì trường hợp cụ thể của OP, nhưng chỉ xảy ra một lần xảy ra] . Có lẽ bạn thậm chí có thể muốn /**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
2.Tôi cũng đã viết điều này để xử lý một số lỗi nhất định [như nếu
/**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
3 được thông qua hoặc một chuỗi trống, v.v.]. Trong những trường hợp đó, chức năng sau sẽ trả về /**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
4.Sử dụng
splitAtSearch['Version 12.34.56', '.'] // Returns ['Version 12', '.34.56']
Hàm số
/**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
Ví dụ
splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
Nhận phần phụ sau một ký tự cụ thể #
Để có được chuỗi con sau một ký tự cụ thể, hãy gọi phương thức
5, chuyển nó chỉ mục sau chỉ mục của ký tự làm tham số. Phương thức /**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
6 sẽ trả về một phần của chuỗi sau ký tự được chỉ định./**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
Copied!
const str = 'A very_long string'; const after_ = str.substring[str.indexOf['_'] + 1]; console.log[after_]; // 👉️ long string
Chúng tôi đã sử dụng phương thức String.SubString để có một phần của chuỗi.
Đối số duy nhất chúng tôi chuyển sang phương thức
/**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
6 là chỉ mục bắt đầu - chỉ mục của ký tự đầu tiên được đưa vào chuỗi được trả vềstart index - the index of the first character to be included in the returned stringChúng tôi đã sử dụng phương thức String.Indexof để có được chỉ số của lần xuất hiện đầu tiên của ký tự cụ thể.
Tuy nhiên, chúng tôi không muốn đưa ký tự vào chuỗi được trả về, vì vậy chúng tôi tăng chỉ mục của nó bằng
8./**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
Phương thức
/**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
9 trả về splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
0 nếu chuỗi không chứa ký tự được chỉ định.Nếu phương thức
/**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
9 trả về splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
0 trong ví dụ, chúng tôi sẽ thêm /**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
8 vào splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
0 và gọi phương thức /**
* Splits string based on first result in search
* @param {string} string - String to split
* @param {string} search - Characters to split at
* @return {array|false} - Strings, split at search
* False on blank string or invalid type
*/
function splitAtSearch[ string, search ] {
let isValid = string !== '' // Disallow Empty
&& typeof string === 'string' // Allow strings
|| typeof string === 'number' // Allow numbers
if [!isValid] { return false } // Failed
else { string += '' } // Ensure string type
// Search
let searchIndex = string.indexOf[search]
let isBlank = [''+search] === ''
let isFound = searchIndex !== -1
let noSplit = searchIndex === 0
let parts = []
// Remains whole
if [!isFound || noSplit || isBlank] {
parts[0] = string
}
// Requires splitting
else {
parts[0] = string.substring[0, searchIndex]
parts[1] = string.substring[searchIndex]
}
return parts
}
6 với chỉ mục bắt đầu là splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
6, sẽ trả về toàn bộ chuỗi.Các chỉ mục dựa trên 0 trong JavaScript, do đó chỉ số của ký tự đầu tiên trong chuỗi là
6 và chỉ số của ký tự cuối cùng là splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
8.splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
Ngoài ra, bạn có thể sử dụng phương pháp
splitAtSearch[''] // false
splitAtSearch[true] // false
splitAtSearch[false] // false
splitAtSearch[null] // false
splitAtSearch[undefined] // false
splitAtSearch[NaN] // ['NaN']
splitAtSearch['foobar', 'ba'] // ['foo', 'bar']
splitAtSearch['foobar', ''] // ['foobar']
splitAtSearch['foobar', 'z'] // ['foobar']
splitAtSearch['foobar', 'foo'] // ['foobar'] not ['', 'foobar']
splitAtSearch['blah bleh bluh', 'bl'] // ['blah bleh bluh']
splitAtSearch['blah bleh bluh', 'ble'] // ['blah ', 'bleh bluh']
splitAtSearch['$10.99', '.'] // ['$10', '.99']
splitAtSearch[3.14159, '.'] // ['3', '.14159']
9.Để có được chất nền sau một nhân vật cụ thể:
- Sử dụng phương thức
0 để phân chia chuỗi trên ký tự.Copied!
const str = 'A very_long string'; const after_ = str.substring[str.indexOf['_'] + 1]; console.log[after_]; // 👉️ long string
- Truy cập mảng chuỗi tại Index
8./** * Splits string based on first result in search * @param {string} string - String to split * @param {string} search - Characters to split at * @return {array|false} - Strings, split at search * False on blank string or invalid type */ function splitAtSearch[ string, search ] { let isValid = string !== '' // Disallow Empty && typeof string === 'string' // Allow strings || typeof string === 'number' // Allow numbers if [!isValid] { return false } // Failed else { string += '' } // Ensure string type // Search let searchIndex = string.indexOf[search] let isBlank = [''+search] === '' let isFound = searchIndex !== -1 let noSplit = searchIndex === 0 let parts = [] // Remains whole if [!isFound || noSplit || isBlank] { parts[0] = string } // Requires splitting else { parts[0] = string.substring[0, searchIndex] parts[1] = string.substring[searchIndex] } return parts }
- Phần tử đầu tiên trong mảng là phần phụ sau ký tự.
Copied!
const str = 'A very_long string'; const after_ = str.split['_'][1]; console.log[after_]; // 👉️ long string
Chúng tôi đã sử dụng phương thức chuỗi.split [] để phân chia chuỗi trên mỗi lần xuất hiện của một dấu gạch dưới.
Copied!
const str = 'A very_long string'; // 👇️ ['A very', 'long string'] console.log[str.split['_']];
Phần tử thứ hai trong mảng là phần phụ sau ký tự được chỉ định [nhấn mạnh trong ví dụ].
Nếu bộ phân cách không được tìm thấy trong chuỗi, phương thức
0 sẽ trả về một mảng chỉ chứa 1 phần tử bao gồm toàn bộ chuỗi.Copied!
const str = 'A very_long string'; const after_ = str.substring[str.indexOf['_'] + 1]; console.log[after_]; // 👉️ long string
Copied!
const str = 'A very long string'; // 👇️ ['A very long string'] console.log[str.split['_']];
Nếu chúng ta truy cập phần tử thứ hai trong mảng, chúng ta sẽ nhận được giá trị
3.Copied!
const str = 'A very_long string'; const after_ = str.substring[str.indexOf['_'] + 1]; console.log[after_]; // 👉️ long string
Một cách để xử lý việc này là sử dụng toán tử logic hoặc [||] để trả về toàn bộ chuỗi nếu không tìm thấy dấu phân cách.
Copied!
const str = 'A very long string'; const after_ = str.split['_'][1] || str; console.log[after_]; // 👉️ A very long string
Chúng tôi đã sử dụng toán tử logic hoặc [|
Nếu dấu phân cách không được chứa trong chuỗi, biểu thức sẽ trả về toàn bộ chuỗi.
Đọc thêm #
- Nhận phần phụ trước một ký tự cụ thể trong JavaScript
- Nhận một chuỗi con giữa 2 ký tự trong JavaScript
- Kiểm tra xem chuỗi không bao gồm chuỗi con trong javascript
- Kiểm tra xem chuỗi kết thúc bằng chất nền trong JavaScript
- Xóa tất cả các số khỏi chuỗi trong JavaScript
- Cách lấy độ dài của một chuỗi trong JavaScript
- Biến nội suy trong một chuỗi trong JavaScript
- Kiểm tra xem chữ cái trong chuỗi là chữ hoa hoặc chữ thường trong js
- Xóa tất cả các ký tự không phải là vô hiệu khỏi chuỗi trong JS