Funciones adicionales para usar en variables dinámicas
En acciones avanzadas, puede utilizar funciones personalizadas además de funciones basadas en MathJS:
Funciones de cadena
indexOf (pajar, aguja)
Si la cadena "aguja" se encuentra en la cadena o lista "pajar", la función devuelve su posición (basada en cero), de lo contrario se evalúa a -1.
Ejemplos:
indexOf("ABCD", "A") //returns 0 indexOf("ABCD", "CD") //returns 2 indexOf("ABCD", "E") //returns -1 indexOf(["a","b","c"], "a") //returns 0 indexOf(["a","b","c"], "bc") //returns -1
getIndexValue(pajar, índice)
Si el número "índice" es menor que la lista "pajar", la función devuelve el valor situado en la posición "índice", en caso contrario, dará error.
Ejemplos:
getIndexValue(["a","b","c"], 0) //returns a getIndexValue(["a","b","c"], 1) //returns b
substr (cadena, inicio [, longitud])
Esta función devuelve una subcadena de la cadena original, comenzando desde la posición de inicio basada en cero. Si se especifica la longitud, devuelve esa cantidad de caracteres y, de lo contrario, devuelve el resto de la cadena.
Ejemplos:
substr("ABCD", 1) //returns "BCD" substr("ABCD", 2, 1) //returns "C" substr("ABCD", 5) //returns ""
rebanada (cadena, inicio [, final])
Esta función devuelve una subcadena de la cadena original, comenzando desde la posición de inicio basada en cero. Si se proporciona una posición final, devuelve todos los caracteres hasta, pero sin incluir, el carácter en esa posición. De lo contrario, devuelve el resto de la cadena.
Las posiciones negativas para el inicio o el final se cuentan desde el lado derecho de la cadena.
Ejemplos:
slice("ABCD", 1) //returns "BCD" slice("ABCD", 0, 2) //returns "AB" slice("ABCD", 1, -1) //returns "BC" slice("ABCD", 2, 1) //returns ""
superior (cuerda)
Esta función devuelve la cadena proporcionada, convertida a mayúsculas.
Ejemplo:
upper("aBcD") //returns "ABCD"
inferior (cuerda)
Esta función devuelve la cadena proporcionada, convertida a minúsculas.
Ejemplo:
lower("aBcD") //returns "abcd"
longitud (cuerda)
Esta función devuelve la longitud de la cadena.
Ejemplos:
length("") //returns 0 length("ABCD") //returns 4
Funciones lógicas
igual (valor1, valor2)
Esta función devuelve verdadero si valor1 y valor2 son el mismo valor y tipo, o en caso contrario, falso. Sintaxis alternativa para `valor1 === valor2`. (`value1 == value2` es una comparación más débil)
Ejemplos:
equal(2, 1) //returns false equal(1, 1) //returns true equal(1, "1") //returns false (different types)
ifElse (condición, valueIfTrue, valueIfFalse)
Esta función comprueba la condición proporcionada. Si la condición es verdadera (o veraz), devuelve valueIfTrue; de lo contrario, devuelve valueIfFalse.
Ejemplos:
ifElse(equal(1, 5), "equal", "not equal") //returns "not equal" ifElse(equal(2, 2), "equal", "not equal") //returns "equal"
Funciones Regex
match(valor, patrón[, banderas, groupIndex])
matchAll(valor, patrón, matchIndex[, banderas])
Estas funciones realizan la correspondencia de expresiones regulares y comprueban si el "valor" proporcionado coincide con el "patrón" de expresión regular proporcionado.
El argumento opcional flags es una cadena de banderas de expresión regular de una sola letra que permite un comportamiento avanzado (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#advanced_searching_with_flags). El uso más común para un argumento de bandera es pasar "i" para una coincidencia insensible a mayúsculas y minúsculas.
Aquí hay dos funciones relacionadas:
- The
match
function looks for a single match and supports an advanced usage with numeric capture groups, using the last argument to select the desired capture group (0 is the whole match, 1 is the first capture group, and so on). - The
matchAll
version supports multiple matches, using thematchIndex
argument to select the desired match. (0 is the first match, 1 is the second match, and so on.)
In both cases, if there is a match the result will be the string content, or when used as the body of a dynamic Boolean variable, it will be true
if there is a match or false
if there was not a match.
Ejemplos:
// Basic usage match("abc", "b.") // returns "bc" (or true as a Dynamic Boolean Variable) match("abc", "c.") // returns no match (or false as a Dynamic Boolean Variable) // Advanced usage // Case-insensitive match("aBc", "b.", "i") // returns "Bc", since casing was ignored with the "i" flag // Capture Groups match("acd bce", "b(c.)", "", 1); // returns "ce" - the whole match was "bce", but the first capture group is (c.) // Multiple matches matchAll("acd bce", "c.", 1); // returns "ce" - "c." matches both "cd" and "ce", the last argument (and usage of matchAll) selected the second one.
Funciones de fecha
formatDate(fecha[, formatoCadena])
Toma una fecha numérica y la convierte a un formato legible para el ser humano. Esto es útil para mostrar una fecha a un agente después de haberle hecho alguna manipulación numérica.
The date
value is in milliseconds since January 1st 1970.
The formatString
accepts Unicode-standard substitutions.
Ejemplos:
// Default formatting formatDate(946684800000) // 01/01/2000 12:00:00 am (+00:00) // Custom formatting formatDate(946684800000, "eeee, MMMM do yyyy, h:mm:ss a (z)") // Saturday, January 1st 2000, 12:00:00 am (GMT) formatDate(946684800000, "eeee, MMMM do yyyy, h:mm:ss a (xxxxx)") // Saturday, January 1st 2000, 12:00:00 am (+00:00)
formatDateISO(fecha)
Toma una fecha numérica y la convierte en una cadena de fecha formateada, en formato ISO 8601. Esto resulta útil cuando se trabaja con componentes de fecha o se envía la fecha a una llamada API.
The date
value is in milliseconds since January 1st 1970.
Nota: La cadena resultante estará en la zona horaria del agente.
Ejemplos:
formatDateISO(946684800000) // 1999-12-31T19:00:00-05:00
dateToMilliseconds(fecha)
Toma una cadena de fecha, y la convierte en un número de milisegundos desde el 1 de enero de 1970, para su manipulación numérica.
Se espera que la fecha proporcionada esté en el formato por defecto utilizado por las variables de script.
Ejemplos:
dateToMilliseconds("01/01/2000 12:00:00 am (+00:00)"); // 946684800000 formatDate(dateToMilliseconds({{Scripter.Customer Call Start Time}}) + 5 * 60 * 1000) // Five minutes (multiplied by 60 sec/minute and 1000 ms/sec to convert to ms) after the customer was connected
formatDuration(duración)
Convierte una duración numérica, en milisegundos, a un formato legible por humanos.
Ejemplo:
formatDuration(5 * 1000 * 60 + 55); // "00:05:55"
durationToMilliseconds(durationCadena)
Convierte una cadena de duración en un valor numérico.
Ejemplo:
durationToMilliseconds({{Scripter.Customer Call Duration}}) // How long has the customer been connected formatDuration(5 * 1000 * 60 - durationToMilliseconds({{Scripter.Customer Call Duration}})) // Countdown until the customer has been on the line for five minutes