diff --git a/guide/english/certifications/javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending/index.md b/guide/english/certifications/javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending/index.md index 1e635fb60e..f49d486992 100644 --- a/guide/english/certifications/javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending/index.md +++ b/guide/english/certifications/javascript-algorithms-and-data-structures/basic-algorithm-scripting/confirm-the-ending/index.md @@ -33,3 +33,31 @@ confirmEnding("He has to give me a new name", "name"); ### Relevant Links - [String.prototype.slice()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/slice) + + +# ![:rotating_light:](https://forum.freecodecamp.com/images/emoji/emoji_one/rotating_light.png?v=3 ":rotating_light:")Advanced Code Solution: + (using Regular Expression) + + ```javascript +function confirmEnding(str, target) { + // "Never give up and good luck will find you." + // -- Falcor + + let re = new RegExp(target+'$','i'); + + return re.test(str); +} + +console.log(confirmEnding("Bastian", "n")); +``` + +## Code Explanation: + - We need to make a pattern from the `target` variable that exists at the end of the string `str`. + - Since we will use a variable that will change the pattern each time the function is called, we will use the constructor of the regular expression object `new RegExp(pattern[, flags])`, so we start with: `new RegExp(target)`. + - Then we have to check at the end of the string, so we concatenate to the `target` variable the `$` character to match the end: `new RegExp(target+'$')`. + - We use the flag `i` to ignore the case of the pattern and we have our completed RegExp: `new RegExp(target+'$','i')`, or we can ommit the flag entirely. + - Finally, we are using our regular expression with the `test` method to the given string, to check if the string ends with the pattern and return true or false accordingly. + + ### Relevant Links + - [RegExp](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) + - [RegExp.prototype.test()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test)