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.
30-Days-Of-JavaScript/Exercise-Solutions/days/12_day_regular_ex.md

95 lines
3.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Day 12 - Regex
## [Exercise:Solutions](#exercise-solutions)
- ### [Exercise:Level 1](#exercises-level-1)
- ### [Exercise:Level 2](#exercises-level-2)
- ### [Exercise:Level 3](#exercises-level-3) <hr>
#### [Home](../README.md) | [<< Day 11](./11_day_des_spreading.md) | [Day 13 >>](./13_day_consol_objmth.md)
## Exercise Solutions
### Exercises Level 1
1. Calculate the total annual income of the person from the following text. He earns 4000 euro from salary per month, 10000 euro annual bonus, 5500 euro online courses per month.
```js
// app.js
let text ="He earns 4000 euro from salary per month, 10000 euro annual bonus, 5500 euro online courses per month."
let pattern = /\d+/g
let numbers = text.match(pattern)
numbers = numbers.map(Number)
let montlySalary = numbers[0]
let bonus = numbers[1]
let montCourses = numbers[2]
console.log(`Annual income is ${(montlySalary*12) + (bonus) + (montCourses *12)}`)
```
2. The position of some particles on the horizontal x-axis -12, -4, -3 and -1 in the negative direction, 0 at origin, 4 and 8 in the positive direction. Extract these numbers and find the distance between the two furthest particles.
```js
// app.js
```
3. Write a pattern which identify if a string is a valid JavaScript variable
```js
// app.js
function isValidVariableName(str) {
// Birinci karakterin harf, alt çizgi veya dolar işareti olup olmadığını kontrol eden bir kalıp
var firstCharPattern = /^[a-zA-Z_$]/;
// Diğer karakterlerin harf, rakam, alt çizgi veya dolar işareti olup olmadığını kontrol eden bir kalıp
var otherCharPattern = /^[a-zA-Z0-9_$]*$/;
// Dizenin rezerve edilmiş bir kelime olup olmadığını kontrol eden bir dizi
var reservedWords = ["var", "let", "const", "function", "if", "else"];
// Dizenin boş olmadığını, birinci karakterin kalıpla eşleştiğini, diğer karakterlerin kalıpla eşleştiğini ve rezerve edilmiş kelimeler arasında olmadığını kontrol eder
return str && firstCharPattern.test(str) && otherCharPattern.test(str) && !reservedWords.includes(str);
}
console.log(isValidVariableName('21dzfgdf'))
```
### Exercises Level 2
1. Write a function called tenMostFrequentWords which get the ten most frequent word from a string?
```
let paragraph = `I love teaching. If you do not love teaching what else can you love. I love Python if you do not love something which can give you all the capabilities to develop an application what else can you love.`
```
```js
// app.js
function tenMostFrequentWords(paragraph) {
// Paragrafı kelimelere ayırırken noktalama işaretlerini ve büyük harfleri yok sayar
var words = paragraph.toLowerCase().replace(/[.,]/g, '').split(/\s/);
// Her kelimenin frekansını tutan bir nesne oluşturur
var freqMap = {};
words.forEach(function(word) {
// Kelime nesnede yoksa 0, varsa mevcut değerine 1 ekler
freqMap[word] = (freqMap[word] || 0) + 1;
});
// Nesneyi bir diziye dönüştürür ve frekansa göre azalan şekilde sıralar
var sorted = Object.entries(freqMap).sort(function(a, b) {
return b[1] - a[1];
});
// Sadece ilk 10 elemanı alır ve kelimeleri bir dizi olarak döndürür
return sorted.slice(0, 10).map(function(pair) {
return pair[0];
});
}
console.log( tenMostFrequentWords(paragraph))
```
### Exercises Level 3
1. Writ a function which cleans text. Clean the following text. After cleaning, count three most frequent words in the string.
#### [Home](../README.md) | [<< Day 11](./11_day_des_spreading.md) | [Day 13 >>](./13_day_consol_objmth.md)