@@ -68,6 +68,9 @@ import reverseCodePoints = require( '@stdlib/string/base/reverse-code-points' );
68
68
import reverseGraphemeClusters = require( '@stdlib/string/base/reverse-grapheme-clusters' ) ;
69
69
import rpad = require( '@stdlib/string/base/right-pad' ) ;
70
70
import 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' ) ;
71
74
import snakecase = require( '@stdlib/string/base/snakecase' ) ;
72
75
import startcase = require( '@stdlib/string/base/startcase' ) ;
73
76
import startsWith = require( '@stdlib/string/base/starts-with' ) ;
@@ -1083,7 +1086,7 @@ interface Namespace {
1083
1086
*
1084
1087
* @example
1085
1088
* var out = ns.replaceBefore( 'Hello World!', '', 'foo', 0 );
1086
- * // returns 'Hello World !'
1089
+ * // returns 'Hello world !'
1087
1090
*
1088
1091
* @example
1089
1092
* var out = ns.replaceBefore( 'Hello World!', 'xyz', 'foo', 0 );
@@ -1272,6 +1275,81 @@ interface Namespace {
1272
1275
*/
1273
1276
rtrim : typeof rtrim ;
1274
1277
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
+
1275
1353
/**
1276
1354
* Converts a string to snake case.
1277
1355
*
0 commit comments