Bug or at least unexpected side effect of replaceAll
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript
- Domínio
- tooling
Direção de pesquisa
Start by locating the PureScript strings implementation of replaceAll and its JavaScript replace entry point, then inspect how replacement strings are passed through. Verify the suggested escaping behavior with a regression case involving $' and other dollar-prefixed replacement text; done means replacement strings remain literal.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
In Javascript, the replace function when the first parameter is a Regex, there are special character strings for replacements, e.g. $'.
The problem is that the PureScript replaceAll relies on the JavaScript replace using a Regex with the global flag.
This means that replacement strings are simple string replacements, but instead are interpreted.
Suggested fix:
export const replaceAll = p => r => s => s.replace(new RegExp(p.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"), "g"), r.replace(/\$/g, "$$$$")); // eslint-disable-line no-useless-escape
We're replacing the $ with $$ globally in the replacement string.
- Linguagem predominante
- PureScript
- Estrelas
- 57
- Forks
- 76
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de purescript/purescript-strings
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
purescript/purescript-strings#171 · 3 comentários · 1 reação ·
-
Add takeEnd & dropEndAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
purescript/purescript-strings#170 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
purescript/purescript-strings#169 · 7 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 38/100
purescript/purescript-strings#167 · 4 comentários ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
purescript/purescript-strings#164 · 2 comentários ·
Todas as issues de purescript/purescript-strings
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
prime-radiant-inc/evener#3873 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
micromatch/picomatch#223 ·
Mantenedores costumam responder em até 11 dias
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
mksglu/context-mode#1268 ·
Mantenedores costumam responder em até 5 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Mantenedores costumam responder em até 1 dia
-
[bug] Setup fails with "Cannot find matching keyid" when an older Node's corepack is on PATHTalvez já em andamento @EyalPoly assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia