You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
app-ideas/Projects/2-Intermediate/RegExp-Helper-App.md

42 lines
1.8 KiB

# Regular Expression Helper
**Tier:** 2-Intermediate
Regular Expressions should be a valuable part of any developers toolbox. They
provide a concise way to describe a pattern that can be used to test, search,
match, replace, or split the contents of a
string. Regular Expressions provide functionality you might otherwise have to
implement using loops and more lines of code.
The Regular Expression Helper helps you learn more about Regular Expressions
by building a useful tool you'll also be able to use to test expressions
you use in your apps.
## User Stories
- [ ] User can enter a regular expression.
- [ ] User can enter a string the regular expression can be run against.
- [ ] User can click a 'Run' button to test
- [ ] User can see a warning message if no regular expression was entered.
- [ ] User can see a warning message if no string was entered.
- [ ] User can see the matching text highlighted indicating if `test()` was able to locate the pattern in the string.
- [ ] User can see a message if none of the text was matched.
## Bonus features
- [ ] User can select the flags (like 'g') to be used in the regular expression from a dropdown - global, case insensitive, multiline, sticky.
- [ ] User can select the RegExp function to be applied from a dropdown - test, search, or match
- [ ] User can see a message indicating the result of the selected RegExp function.
- [ ] Developer can run automated tests using a testing framework such as
[Jest](https://jestjs.io/)
## Useful links and resources
- [Javascript RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp)
- [Regular Expressions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions)
## Example projects
- [RegExr](https://regexr.com/)
- [Regular Expressions 101](https://regex101.com/)