/
strtok.js
35 lines (32 loc) · 1.16 KB
/
strtok.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
module.exports = function strtok(str, tokens) {
// discuss at: https://locutus.io/php/strtok/
// original by: Brett Zamir (https://brett-zamir.me)
// note 1: Use tab and newline as tokenizing characters as well
// example 1: var $string = "\t\t\t\nThis is\tan example\nstring\n"
// example 1: var $tok = strtok($string, " \n\t")
// example 1: var $b = ''
// example 1: while ($tok !== false) {$b += "Word="+$tok+"\n"; $tok = strtok(" \n\t");}
// example 1: var $result = $b
// returns 1: "Word=This\nWord=is\nWord=an\nWord=example\nWord=string\n"
const $global = typeof window !== 'undefined' ? window : global
$global.$locutus = $global.$locutus || {}
const $locutus = $global.$locutus
$locutus.php = $locutus.php || {}
if (tokens === undefined) {
tokens = str
str = $locutus.php.strtokleftOver
}
if (str.length === 0) {
return false
}
if (tokens.indexOf(str.charAt(0)) !== -1) {
return strtok(str.substr(1), tokens)
}
for (var i = 0; i < str.length; i++) {
if (tokens.indexOf(str.charAt(i)) !== -1) {
break
}
}
$locutus.php.strtokleftOver = str.substr(i + 1)
return str.substring(0, i)
}