es-string-algorithm v1.1.0
es-string-algorithm
Introduction
C++ STL provide find_first_of / find_first_not_of / find_last_of / find_last_not_of / find / rfind member function.
However, JavaScript String class does not provide such method. So, this package provide these functions.
Reference
Every function manipulate a string as if that is UTF-32 encoded.
To describe simply, we use two function like below:
at(s: string, n: number) => string: Returnsnth charactor.
findFirstOf
export declare const findFirstOf: (target: string, key: string, pos?: number, n?: number | undefined) => number;Determines the lowest position xpos, if possible, such that both of the following conditions hold:
pos <= xposandxpos < std.size(target)k.includes(at(target, xpos))(Whennisundefined(omitted),kis equal tokey. Otherwise,kis equal tostd.substr(key, 0, n))
Parameters
target: search target stringkey: string identifying characters to search forpos = 0: position at which to begin searchingn(opt): length of character string identifying characters to search for
Return value
xpos if the function can determine such a value for xpos. Otherwise, returns -1.
Example
const std = require('es-string-algorithm');
const s = 'Hello, world. Welcome to C++ world.';
const str = 'world';
console.log(std.findFirstOf(s, str, 14));// => 16
console.log(std.findFirstOf(s, ',.+', 14));// => 26
console.log(std.findFirstOf('arikitari na sekai', 'a', 1));// => 6
console.log(std.findFirstOf('π£πΊ', 'πΊ'));// => 1findLastof
export declare const findLastof: (target: string, key: string, pos?: number, n?: number | undefined) => number;Determines the highest position xpos, if possible, such that both of the following conditions hold:
pos <= xposandxpos < std.size(target)k.includes(at(target, xpos))(Whennisundefined(omitted),kis equal tokey. Otherwise,kis equal tostd.substr(key, 0, n))
Parameters
target: search target stringkey: string identifying characters to search forpos = -1: position at which the search is to finish.-1is equal to the length of search target stringn(opt): length of character string identifying characters to search for
Return value
xpos if the function can determine such a value for xpos. Otherwise, returns -1.
Example
const std = require('es-string-algorithm');
const s = 'Hello, world. Welcome to C++ world.';
const str = 'world';
console.log(std.findLastof(s, str, 25));// => 23
console.log(std.findLastof(s, ',.+', 5));// => 5
console.log(std.findLastof('arikitari na sekai', 'a', 1));// => 0
console.log(std.findLastof('π£πΊ', 'πΊ'));// => 1findFirstNotOf
export declare const findFirstNotOf: (target: string, key: string, pos?: number, n?: number | undefined) => number;Determines the lowest position xpos, if possible, such that both of the following conditions hold:
pos <= xposandxpos < std.size(target)!k.includes(at(target, xpos))(Whennisundefined(omitted),kis equal tokey. Otherwise,kis equal tostd.substr(key, 0, n))
Parameters
target: search target stringkey: string identifying characters to search forpos = 0: position at which to begin searchingn(opt): length of character string identifying characters to search for
Return value
xpos if the function can determine such a value for xpos. Otherwise, returns -1.
Example
const std = require('es-string-algorithm');
const s = 'Hello, world. Welcome to C++ world.';
const str = 'world';
console.log(std.findFirstNotOf(s, str, 2));// => 5
console.log(std.findFirstNotOf(s, 'worlde,. ', 1));// => 14
console.log(std.findFirstNotOf('arikitari na sekai datta', 't', 21));// => 23
console.log(std.findFirstNotOf('π£πΊ', 'π£'));// => 1findLastNotof
export declare const findLastNotof: (target: string, key: string, pos?: number, n?: number | undefined) => number;Determines the highest position xpos, if possible, such that both of the following conditions hold:
pos <= xposandxpos < std.size(target)k.includes(at(target, xpos))(Whennisundefined(omitted),kis equal tokey. Otherwise,kis equal tostd.substr(key, 0, n))
Parameters
target: search target stringkey: string identifying characters to search forpos = -1: position at which the search is to finish.-1is equal to the length of search target stringn(opt): length of character string identifying characters to search for
Return value
xpos if the function can determine such a value for xpos. Otherwise, returns -1.
Example
const std = require('es-string-algorithm');
const s = 'Hello, world. Welcome to C++ world.';
const str = 'world';
console.log(std.findLastNotof(s, str, 11));// => 6
console.log(std.findLastNotof(s, 'Welcome to C++ world.', 1));// => 5
console.log(std.findLastNotof('arikitari na sekai', 'a', 0));// => -1
console.log(std.findLastNotof('π£πΊ', 'πΊ'));// => 0find
export declare const find: (target: string, key: string, pos = 0, n?: number) => number;Determines the lowest position xpos, if possible, such that both of the following conditions hold:
xpos <= posandxpos + n <= std.size(target)k.includes(at(target, xpos))(Whennisundefined(omitted),kis equal tokey. Otherwise,kis equal tostd.substr(key, 0, n))
Parameters
target: search target stringkey: string identifying characters to search forpos = 0: position at which to begin searchingn(opt): length of character string identifying characters to search for
Return value
xpos if the function can determine such a value for xpos. Otherwise, returns -1.
Example
const std = require('es-string-algorithm');
const s = 'Hello, world. Welcome to C++ world.';
const str = 'world';
console.log(std.find(s, findWord));// => 7
console.log(std.find(s, findWord, 12));// => 29
console.log(std.find(s, findWord, 33));// => -1
console.log(std.find('π£πΊπ§πΎ', 'πΊπ§'));// => 1rfind
export declare const rfind: (target: string, key: string, pos = -1, n?: number) => number;Determines the highest position xpos, if possible, such that both of the following conditions hold:
xpos <= posandxpos + n <= std.size(target)k.includes(at(target, xpos))(Whennisundefined(omitted),kis equal tokey. Otherwise,kis equal tostd.substr(key, 0, n))
Parameters
target: search target stringkey: string identifying characters to search forpos = -1: position at which to begin searchingn(opt): length of character string identifying characters to search for
Return value
xpos if the function can determine such a value for xpos. Otherwise, returns -1.
Example
const std = require('es-string-algorithm');
const s = 'Hello, world. Welcome to C++ world.';
const str = 'world';
console.log(std.rfind(s, findWord, 29));// => 29
console.log(std.rfind(s, findWord, 28));// => 7
console.log(std.rfind(s, 'W', 29));// => 14
console.log(std.rfind('π£πΊπ§πΎ', 'πΊπ§'));// => 1substr
export declare const substr: (s: string, pos?: number, n?: number | undefined) => string;Create part of the s
Parameters
s: stringpos = 0: copy start positionn(opt): copy length
Return value
part of the s in range of [pos...rlast] (rlast is the smaller of pos + n and std.size(s))
Exception
Throws RangeError when pos or n is negative or pos > std.size(s)
size
export declare const size: (s: string) => number;A count of the number of codepoint currently in the string.
Parameters
s: string
Complexity
O(n)
