Difference between revisions of "Script:splitArgs"
From Roll20 Wiki
(Created page with "{{stub}}") |
Andreas J. (Talk | contribs) m (add category) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{script overview |
+ | |name=splitArgs | ||
+ | |author={{user profile|235259|Brian}} | ||
+ | |version=1.1 | ||
+ | |lastmodified=2015-03-08}} | ||
+ | |||
+ | '''splitArgs''' is designed to assist other scripts in handling user input. In particular, the common practice of creating an API command followed by a series of parameters means that the single string represented by <code>msg.content</code> needs to be split into multiple parts. The naive and most common means of doing this is simply using <code>msg.content.split(' ')</code>, however this solution does not allow the programmer to account for quoted parameters which contain spaces. | ||
+ | |||
+ | The <code>splitArgs</code> function is added to <code>String.prototype</code>, meaning it can be treated as a function of string objects. | ||
+ | |||
+ | Original credit for the algorithm goes to [https://github.com/elgs/splitargs Elgs Qian Chen]. | ||
+ | |||
+ | === Syntax === | ||
+ | {{syntaxbox top|nocat=true}} | ||
+ | str.splitArgs([''separator'']) | ||
+ | {{syntaxbox end}} | ||
+ | |||
+ | ==== Parameters ==== | ||
+ | ; separator | ||
+ | : Optional. Specifies the character(s) to use for separating the string into arguments. The separator is treated as a string or a regular expression. If separator is omitted, the regular expression <code>/\s/g</code> will be used. (Match one whitespace character.) | ||
+ | |||
+ | ==== Return Value ==== | ||
+ | <code>splitArgs</code> returns an array of strings, split by the given separator. The separator will not appear in the array, with the exception of separators appearing between single or double quotes; a quoted section will be treated as a single argument, and the outermost quotes will not appear in the returned array. | ||
+ | |||
+ | === Example === | ||
+ | <pre data-language="javascript"> | ||
+ | on('chat:message', function(msg) { | ||
+ | var params = msg.content.splitArgs(), | ||
+ | command = params.shift().substring(1); | ||
+ | |||
+ | // msg.content === "!command with parameters, \"including 'with quotes'\"" | ||
+ | // params === ["with", "parameters,", "including 'with quotes'"] | ||
+ | // command === "command" | ||
+ | }); | ||
+ | </pre> | ||
+ | |||
+ | === Changelog === | ||
+ | {{changelog version|1.1|2015-03-08|* Update}} | ||
+ | {{changelog version|1.0|2015-01-08|* Release}} | ||
+ | |||
+ | [[Category:API Meta Scripts]] |
Latest revision as of 14:16, 4 January 2022
Version: 1.1
Last Modified: 2015-03-08
Code: splitArgs
Dependencies: None
Conflicts: None
splitArgs is designed to assist other scripts in handling user input. In particular, the common practice of creating an API command followed by a series of parameters means that the single string represented by msg.content
needs to be split into multiple parts. The naive and most common means of doing this is simply using msg.content.split(' ')
, however this solution does not allow the programmer to account for quoted parameters which contain spaces.
The splitArgs
function is added to String.prototype
, meaning it can be treated as a function of string objects.
Original credit for the algorithm goes to Elgs Qian Chen.
Contents |
[edit] Syntax
str.splitArgs([separator])
[edit] Parameters
- separator
- Optional. Specifies the character(s) to use for separating the string into arguments. The separator is treated as a string or a regular expression. If separator is omitted, the regular expression
/\s/g
will be used. (Match one whitespace character.)
[edit] Return Value
splitArgs
returns an array of strings, split by the given separator. The separator will not appear in the array, with the exception of separators appearing between single or double quotes; a quoted section will be treated as a single argument, and the outermost quotes will not appear in the returned array.
[edit] Example
on('chat:message', function(msg) { var params = msg.content.splitArgs(), command = params.shift().substring(1); // msg.content === "!command with parameters, \"including 'with quotes'\"" // params === ["with", "parameters,", "including 'with quotes'"] // command === "command" });
[edit] Changelog
v1.1 (2015-03-08)
- Update
v1.0 (2015-01-08)
- Release