mapbox-gl-js icon indicating copy to clipboard operation
mapbox-gl-js copied to clipboard

Add find-and-replace expression operator

Open lucaswoj opened this issue 9 years ago • 6 comments

From @nickidlugash on August 3, 2015 23:46

Currently we can't make use of the way duplex shields in the mapbox streets data are designed to be styled, because we can't use regex as part of values, and we also don't accept \n as a space for line wrapping. Is it feasible to implement the ability to use find/replace and \n?

Copied from original issue: mapbox/mapbox-gl-style-spec#321

lucaswoj avatar Feb 01 '17 22:02 lucaswoj

From @1ec5 on August 3, 2015 23:48

The regex half of this is covered by #233.

lucaswoj avatar Feb 01 '17 22:02 lucaswoj

From @jfirebaugh on August 4, 2015 0:53

#233 is for the use of regexes in filters, which is a different use case.

I seem to recall an issue for wrapping on newlines, but I can't find it at the moment.

lucaswoj avatar Feb 01 '17 22:02 lucaswoj

We have a separate issue for regex support and have already implemented newline support.

lucaswoj avatar Feb 01 '17 22:02 lucaswoj

From @jfirebaugh on December 22, 2016 18:25

As noted above: the other issue is for regex support in filters. This is about regex support in functions.

lucaswoj avatar Feb 01 '17 22:02 lucaswoj

As of #5434, expressions (the successor to functions) can be used as filters. #4089 tracks adding an expression operator for testing whether a string matches a regular expression, but we can leave this issue open to track adding an expression operator for finding and replacing occurrences of a substring or regular expression match within a given string.

1ec5 avatar Oct 26 '17 01:10 1ec5

Currently you can kind of workaround find-and-replace without regex, but it's pretty clunky:

["match", ["index-of", "Mount", ["to-string", ["get", "name"]]], 0, ["concat", "Mt", ["slice", ["to-string", ["get", "name"]],5]],  ["to-string", ["get", "name"]]]

This would certainly improve the ergonomics of that.

stevage avatar Jan 21 '24 09:01 stevage