@@ -68,6 +68,9 @@ import reverseCodePoints = require( '@stdlib/string/base/reverse-code-points' );
6868import reverseGraphemeClusters = require( '@stdlib/string/base/reverse-grapheme-clusters' ) ;
6969import rpad = require( '@stdlib/string/base/right-pad' ) ;
7070import rtrim = require( '@stdlib/string/base/right-trim' ) ;
71+ import slice = require( '@stdlib/string/base/slice' ) ;
72+ import sliceCodePoints = require( '@stdlib/string/base/slice-code-points' ) ;
73+ import sliceGraphemeClusters = require( '@stdlib/string/base/slice-grapheme-clusters' ) ;
7174import snakecase = require( '@stdlib/string/base/snakecase' ) ;
7275import startcase = require( '@stdlib/string/base/startcase' ) ;
7376import startsWith = require( '@stdlib/string/base/starts-with' ) ;
@@ -1083,7 +1086,7 @@ interface Namespace {
10831086 *
10841087 * @example
10851088 * var out = ns.replaceBefore( 'Hello World!', '', 'foo', 0 );
1086- * // returns 'Hello World !'
1089+ * // returns 'Hello world !'
10871090 *
10881091 * @example
10891092 * var out = ns.replaceBefore( 'Hello World!', 'xyz', 'foo', 0 );
@@ -1272,6 +1275,81 @@ interface Namespace {
12721275 */
12731276 rtrim : typeof rtrim ;
12741277
1278+ /**
1279+ * Slices UTF-16 code units from a string.
1280+ *
1281+ * @param str - input string
1282+ * @param start - slice start index (inclusive)
1283+ * @param end - slice end index (exclusive)
1284+ * @returns output string
1285+ *
1286+ * @example
1287+ * var out = ns.slice( 'last man standing', 1, 17 );
1288+ * // returns 'ast man standing'
1289+ *
1290+ * @example
1291+ * var out = ns.slice( 'presidential election', 1, 21 );
1292+ * // returns 'residential election'
1293+ *
1294+ * @example
1295+ * var out = ns.slice( 'JavaScript', 4, 10 );
1296+ * // returns 'Script'
1297+ *
1298+ * @example
1299+ * var out = ns.slice( 'Hidden Treasures', 0, 6 );
1300+ * // returns 'Hidden'
1301+ *
1302+ * @example
1303+ * var out = ns.slice( 'foo bar', 2, 7 );
1304+ * // returns 'ar'
1305+ *
1306+ * @example
1307+ * var out = ns.slice( 'foo bar', -1, 7 );
1308+ * // returns 'r'
1309+ */
1310+ slice : typeof slice ;
1311+
1312+ /**
1313+ * Slices a string based on Unicode code point indices.
1314+ *
1315+ * @param str - input string
1316+ * @param start - the `ith` Unicode code point to start a slice (inclusive)
1317+ * @param end - the `jth` Unicode code point to end a slice (exclusive)
1318+ * @returns output string
1319+ *
1320+ * @example
1321+ * var out = ns.sliceCodePoints( 'Hello 👋 World', 1, 3 );
1322+ * // returns 'el'
1323+ *
1324+ * @example
1325+ * var out = ns.sliceCodePoints( '👋👋👋', 1, 2 );
1326+ * // returns '👋'
1327+ */
1328+ sliceCodePoints : typeof sliceCodePoints ;
1329+
1330+ /**
1331+ * Slices a string based on grapheme cluster (i.e., user-perceived character) indices.
1332+ *
1333+ * @param str - input string
1334+ * @param start - the `ith` grapheme cluster to start a slice (inclusive)
1335+ * @param end - the `jth` grapheme cluster to end a slice (exclusive)
1336+ * @returns output string
1337+ *
1338+ * @example
1339+ * var out = ns.sliceGraphemeClusters( 'Hello World', 0, 5 );
1340+ * // returns 'Hello'
1341+ *
1342+ * out = ns.sliceGraphemeClusters( '👋👋👋', 0, 2 );
1343+ * // returns '👋👋'
1344+ *
1345+ * out = ns.sliceGraphemeClusters( 'अनुच्छेद', 1, 3 );
1346+ * // returns 'नुच्'
1347+ *
1348+ * out = ns.sliceGraphemeClusters( 'Hello World', -5, -1 );
1349+ * // returns 'Worl'
1350+ */
1351+ sliceGraphemeClusters : typeof sliceGraphemeClusters ;
1352+
12751353 /**
12761354 * Converts a string to snake case.
12771355 *
0 commit comments