Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.10.2015, 10:15
Аспирант
Отправить личное сообщение для ivnjavascript Посмотреть профиль Найти все сообщения от ivnjavascript
 
Регистрация: 11.05.2015
Сообщений: 74

Автокомплит не реагирует на пробелы
Добрый день.
Прошу подсказать по возможности.
Есть автокомплит, который ищет соответствие строки в базе.
Проблема в том, что если в записи присутствует пробел, то поис прекращается.
$('#pass2').keyup(function(){
		
		var val = this.value, re =  new RegExp('^[а-яёА-ЯЁ]+$', 'i');
		val = val.replace(/^\s*/,'').replace(/\s*$/,'');
						
			if (val.length >= 1 && re.test(val)) {
				
				$.post(
				'http://localhost/search.php',
				{
					queryString:val
				},				
				function(data){
					if(data != "")
					{
					$('#autocomplete').show();
					$('#autocomplete').html(data);
........


if(isset($_POST['queryString']))

{
include_once("connection_db.php");
$string = strip_tags(trim($_POST['queryString']));
$query = mysql_query("SELECT * FROM book_main WHERE fio LIKE '$string%'");
if (mysql_num_rows($query) > 0)
{


пока не могу вспомнить, зачем вставил строку
val = val.replace(/^\s*/,'').replace(/\s*$/,'');


убирал её и делал
re =  new RegExp('^[а-яёА-ЯЁ\s]+$', 'i');


результат пока нет...

т.е. я набираю текст для поиска и как только появляется пробел, то в коде
if (val.length >= 1 && re.test(val)) {

идет не соответствие...
Ответить с цитированием
  #2 (permalink)  
Старый 19.10.2015, 10:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

Сообщение от ivnjavascript
пока не могу вспомнить, зачем вставил строку
val = val.replace(/^\s*/,'').replace(/\s*$/,'');
$.trim(str) -- Удаляет пробелы из начала и конца строки.
убирать ненадо
Сообщение от ivnjavascript
убирал её и делал
re = new RegExp('^[а-яёА-ЯЁ\s]+$', 'i');
а это надо
Ответить с цитированием
  #3 (permalink)  
Старый 19.10.2015, 11:47
Аспирант
Отправить личное сообщение для ivnjavascript Посмотреть профиль Найти все сообщения от ivnjavascript
 
Регистрация: 11.05.2015
Сообщений: 74

я так пробовал, не подходит.
т.е. ввожу текст для поиска, далее дохожу до пробела, ставлю пробел, и дальше div блок поиска пропадает, хотя там есть совпадения...
т.е. при вводе буквы после пробела div блок пропадает т.е.
if (val.length >= 1 && re.test(val)) {

отдает false
и начинает работать else
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2015, 11:50
Аспирант
Отправить личное сообщение для ivnjavascript Посмотреть профиль Найти все сообщения от ivnjavascript
 
Регистрация: 11.05.2015
Сообщений: 74

кстате сократил рег. выражение до
re = new RegExp('^[а-яё\s]+$', 'i');
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2015, 12:17
Аспирант
Отправить личное сообщение для ivnjavascript Посмотреть профиль Найти все сообщения от ivnjavascript
 
Регистрация: 11.05.2015
Сообщений: 74

вобщем вместо \s поставил просто пробел и добавил символы -_(они тоже мне нужны)
re =  new RegExp('^[а-яё -_]+$', 'i');

и начало работать!
Ща пока в шоке -)
Ответить с цитированием
  #6 (permalink)  
Старый 19.10.2015, 12:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

ivnjavascript,
добавить кодировку utf-8 и слеш
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
  var val = 'Всякая ' ,  re = new RegExp('^[а-яё\\s]+$', 'i');
  alert( val.length >= 1 && re.test(val));
</script>
</body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 19.10.2015, 15:10
Аспирант
Отправить личное сообщение для ivnjavascript Посмотреть профиль Найти все сообщения от ivnjavascript
 
Регистрация: 11.05.2015
Сообщений: 74

Сообщение от ivnjavascript Посмотреть сообщение
вобщем вместо \s поставил просто пробел и добавил символы -_(они тоже мне нужны)
re =  new RegExp('^[а-яё -_]+$', 'i');

и начало работать!
Ща пока в шоке -)
по поводу пробела в регулярно выражение, беру свои слова обратно, из-за этого пробела, начал вобще все пропускать -))
Ответить с цитированием
  #8 (permalink)  
Старый 19.10.2015, 15:13
Аспирант
Отправить личное сообщение для ivnjavascript Посмотреть профиль Найти все сообщения от ivnjavascript
 
Регистрация: 11.05.2015
Сообщений: 74

Сообщение от рони Посмотреть сообщение
ivnjavascript,
добавить кодировку utf-8 и слеш
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
  var val = 'Всякая ' ,  re = new RegExp('^[а-яё\\s]+$', 'i');
  alert( val.length >= 1 && re.test(val));
</script>
</body>

</html>
кодировка уже была в utf8.

сделал два слеша и пока, что работает...
но почему два то?
Ответить с цитированием
  #9 (permalink)  
Старый 19.10.2015, 15:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

ivnjavascript,
var reg = new RegExp('^[а-яё\s]+$', 'i') ,  re = new RegExp('^[а-яё\\s]+$', 'i');
  alert([reg,re].join('\n'));
Ответить с цитированием
  #10 (permalink)  
Старый 19.10.2015, 15:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

ivnjavascript,
или сразу в литеральном формате
var re = /[^[а-яё\s]+$]/i;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кроссдоменный автокомплит JGalt AJAX и COMET 1 05.02.2015 02:27
Не удаляются пробелы из input'ов seniormelikyan Общие вопросы Javascript 22 29.10.2013 19:48
Реализовать автокомплит vtroxx Работа 0 13.03.2013 01:19
Удалить длинные пробелы... PsScitalec Общие вопросы Javascript 18 19.05.2012 23:49
Удалить ведущие и заключающие пробелы. Mutagena Javascript под браузер 4 29.03.2010 16:47