 
			
				28.06.2020, 15:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Нет оператора "волнушка", есть  оператор побитового НЕ, который изменяет значение бита на противоположное (инверсия). 
Хотите понять как это взаимосвязано - открывайте калькулятор в Windows, выберите представление Программист, набирайте значение десятичные и просматривайте их бинарном и hex представлении. 
Компьютер как и человек оперирует не только положительными, но и отрицательными значениями. Только это у нас в извилинах наших заложено, а в компьютере для представления знака числа используется его старший бит.  
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось laimas, 28.06.2020 в 15:14.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				28.06.2020, 15:56
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 25.10.2016 
					
					
					
						Сообщений: 1,013
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 представленные варианты неправильно работают, если, например, в строке есть слово "пилорама", а проверяем наличие слова "рама". 
 
проще всего собрать словарик из слов строки с предложением, а потом для каждого из искомых слов проверить нахождение в словарике. Либо, наоборот, собрать словарик из искомых слов (карту "слово -> количество вхождений"), потом обойти предложение и поинкрементить количества, и в конце обойти словарик, проверив что все больше 0. Этот вариант мне больше нравится, текст скорее всего больше чем сборище проверяемых слов 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				28.06.2020, 16:05
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 27.05.2010 
					
					
					
						Сообщений: 33,150
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Alexandroppolus
			
		
	 | 
 
	| 
		представленные варианты неправильно работают, если, например, в строке есть слово "пилорама", а проверяем наличие слова "рама".
	 | 
 
	
 
 пост #9
 
function quest(str,arr)
{
    return arr.filter(function(el) {
    return str.split(/[-\.,\s!]+/).every(function(word) {
    return el.toLowerCase().split(/[-\.,\s!]+/).indexOf(word.toLowerCase()) !== -1
})
})
}
    var arr = ["В голове моей пилорама", "Да, да, да. пилорама", "Но кричалки и вопилки, Но кричалки и вопилки", "А также: Шумелки, пыхтелки и сопелки","Сочинию я неплохо иногда."]
alert(quest("в голове рама",arr));
alert(quest("рама",arr));
alert(quest("пилорама да",arr));
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				28.06.2020, 16:19
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 14.01.2015 
					
					
					
						Сообщений: 12,989
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от Alexandroppolus
			
		
	 | 
 
	| 
		представленные варианты неправильно работают, если, например, в строке есть слово "пилорама", а проверяем наличие слова "рама".
	 | 
 
	
 
 Проблема.   
function a() {
    let text = "мамалыга и папа акамама мыли раму хорошо, кошка мыла себя",
        find = "мыла Мама раму".split(/\s+/),
        re = new RegExp('(?<=\\s)('+find.join('|')+')(?=\\s)','gi'),
        check = text.match(re).filter((e, i, a)=> a.indexOf(e) == i).length;
    return check == find.length ? 'All words' : check + ' words'
}
alert(a())
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				28.06.2020, 20:05
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 13.03.2013 
					
					
					
						Сообщений: 1,572
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от Alexandroppolus
			 
		
	 | 
 
	| 
		представленные варианты неправильно работают, если, например, в строке есть слово "пилорама", а проверяем наличие слова "рама"
	 | 
 
	
 
 
const reg = /[-\.,\s!?]+/g,
    text = "мама и папа мыли раму хорошо, кошка мыла себя",
    search = "Мама мыла раму",
    textArr = text.toLowerCase().split(reg),
    searchArr = search.toLowerCase().split(reg);
if (searchArr.every(v => ~textArr.indexOf(v))) {
    alert("все слова из text присутствуют в starttext")
}
метод indexOf есть как у строк так и у массивов 
разбив строку в массив мы решаем данную проблему  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |