Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Undocumented regexp matching is confusing #2153

Open
4 tasks done
mathieulb opened this issue Jun 2, 2022 · 2 comments
Open
4 tasks done

Undocumented regexp matching is confusing #2153

mathieulb opened this issue Jun 2, 2022 · 2 comments
Labels
type:feature New feature or improvement of existing feature

Comments

@mathieulb
Copy link

New Issue Checklist

Issue Description

"string contains string" actually uses Parse.Query's .matches(str,'i') specifier, which is not documented and can cause problems because various punctuation has special meaning in regexps. However, as regexps are also very useful, it would be best to keep this feature while renaming it "matches" or "matches regexp" or "matches pattern" or "regexp" or "pattern", while also have a separate choice called "contains" or "contains substring", which would match a regexp produced by :

function escapeRegex(s:string):string {
    return s.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&')
}

Steps to reproduce

Filter a string field with a "string contains string" clause (in any version of Dashboard in which it still works, e.g. 4.0.0) ; search using a . in place of any specific character, which will find your items anyway ; then try searching for ( in a string column that has that character : searching for \( finds those items even though no \ is in that column, and searching for literally ( finds 0 results.

Actual Outcome

"string contains string" searches for regexp.

Expected Outcome

"string contains string" would search for a substring, another option would search for provided regexp.

Environment

Dashboard

  • Parse Dashboard version: 4.0.0
  • Browser (Safari, Chrome, Firefox, Edge, etc.): Firefox 100.0.1

Server

  • Parse Server version: 5.2.0
  • Operating system: Heroku-20
  • Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): Heroku

Database

  • System (MongoDB or Postgres): MongoDB
  • Database version: Unknown
  • Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): ObjectRocket at Heroku
@parse-github-assistant
Copy link

Thanks for opening this issue!

  • 🚀 You can help us to fix this issue faster by opening a pull request with a failing test. See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.

@mtrezza
Copy link
Member

mtrezza commented Jun 2, 2022

Good find, yes, a proper renaming makes sense here.

@mtrezza mtrezza added the type:feature New feature or improvement of existing feature label Jun 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feature New feature or improvement of existing feature
Projects
None yet
Development

No branches or pull requests

2 participants