Feature request: more string functions available to expressions

The currently available functions are pretty limited. Although in many cases, actions users can use shell scripting instead, but there are places where only expressions can be used. For example, setting top-level env: variables, or setting a job’s container: image. Particularly, we need a toLowerCase() function to compute a repo’s container registry name.

I would propose adding some common string functions, borrowing from the JS string methods:

  • replaceAll(input, searchFor, replaceWith)
  • substring(input, indexStart [, indexEnd])
  • toLowerCase(input)
  • toUpperCase(input)
  • trim(input)

It was mentioned there is a desire to have some more string manipulation functions in #1288 (comment).