String Functions
Most values in the columns of GLAM data will be Strings, a series of text characters (vs. other Refine data types: numbers, booleans, dates, or null). GREL provides a variety of functions to manipulate and clean up string values.
Common String Functions
value.replace("old","new")
– Perhaps the most common function is replace which takes as arguments a string you want to find and what you want to replace it with.value.replaceChars("áéíóú", "aeiou")
– Rather than a string, this replaces all the individual characters listed in the argument. For example, this is often used to clean up junk characters resulting from OCR.- Change case:
value.toLowercase()
value.toTitlecase()
value.toUppercase()
value.trim()
– removes white space from beginning and end of string.value.slice(1,5)
– returns characters starting from the first argument (including it) to the second number (no including it). Alternatively, you can use bracket notation for a short cut, e.g.value[1,5]
.
Examples
- Create a Custom text facet:
- just beginning of the values:
value.slice(0,5)
- combining multiple columns:
value.trim().toLowercase() + " " + cells["example"].value.trim().toLowercase()
- just beginning of the values:
- Create a new column as a unique id with leading zeros:
"row_id_" + "0000"[0,4-length(row.index +1)] + (row.index +1)
- Apply title case with hyphenated names:
value.replace("-"," || ").toTitlecase().replace(" || ","-")
(notice the strategic replace, use a temporary string that will be unique in the data to avoid unintended consequences!) - Create a URL to fetch data:
"https://example.com/api?keyword=" + value.trim().escape('url') + "&date=" + cells['year'].value.escape('url') + "&format=json"