Comments (6)
👍
from purescript-strings.
@paf31, shall I open a pull request to change the return type from [String]
to [Maybe String]
? If so, are we happy to lose the index
and input
properties? In other words,
Just(["bye", undefined, index: 0, input: "bye"])
would become
Just([Just("bye"), Nothing])
from purescript-strings.
Do we currently get the index
and input
properties?
from purescript-strings.
Do we currently get the
index
andinput
properties?
Yes, we do. The current implementation is as follows:
foreign import _match
"""
function _match(r, s, Just, Nothing) {
var m = s.match(r);
return m == null ? Nothing : Just(m);
}
""" :: forall r. Fn4 Regex String ([String] -> r) r r
We simply apply String.prototype.match
and wrap the result in a Just if the result is not null. Here's another way to represent the results of the expressions in the issue description:
> 'goodbye'.match(/(good)?bye/)
['goodbye', 'good', index: 0, input: 'goodbye']
> 'bye'.match(/(good)?bye/)
['bye', undefined, index: 0, input: 'bye']
from purescript-strings.
Oh, I see. That sucks :) Yes, I suppose for now we should just collect the Strings.
from purescript-strings.
replace'
does not acknowledge the possibility of unmatched optional capturing groups:
replace' :: Regex -> (String -> Array String -> String) -> String -> String
I believe we should use the following type instead:
replace' :: Regex -> (String -> Array (Maybe String) -> String) -> String -> String
We would need to update the implementation accordingly.
Would you like me to submit a pull request?
from purescript-strings.
Related Issues (20)
- Data.String.CodePoints.uncons probably isn't constant-time HOT 4
- stripPrefix performs full linear search in order to check if index is 0
- Add startsWith and endsWith HOT 12
- Docs are not up to date on Pursuit HOT 5
- Data.String.Unsafe.char is not Unicode-aware HOT 1
- Suggestion: allow `slice (length s) (length s)` on Strings HOT 15
- Add trimStart/trimEnd?
- Add support for matchAll? HOT 1
- Add support for dotAll flag? HOT 5
- Allow slicing from index to end of string HOT 1
- `split` should return a NonEmptyArray? HOT 3
- fromCharCode BMP HOT 5
- CodePoints.uncons performance optimization? HOT 3
- Efficient CodePoint indexing function? HOT 11
- Add a `isWellFormed` function? HOT 2
- Reuse `Replacement` in `Regex.replace` HOT 2
- genUnicodeString generates invalid unicode HOT 4
- Should `localeCompare` return in `Effect`? HOT 7
- Add takeEnd & dropEnd
- Remove bounds check and exception from Data.String.Unsafe foreign code? HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from purescript-strings.