Вход

Просмотр полной версии : Проблема в RegExp или jquery


Top-tompak
10.02.2014, 18:22
Всем привет! Есть документ:
<div id="item">адам</div>
И этот документу подключен jquery.
При попытке проверить через RegExp, не может найти:

var val = 'а[^a]*$';
var re = new RegExp(val, 'i');
if (re.test($('#item').text()) ) {
alert('Ok!');
};

А если просто прописать там:

var val = 'а[^a]*$';
var re = new RegExp(val, 'i');
if (re.test('адам') ) {
alert('Ok!');
};

То работает. В чем проблема? Пробовал использовать toString() не помогло

UPD: Исправил ошибку $(this) на $('#item')

рони
10.02.2014, 18:25
Top-tompak,
а кто у вас this?

Top-tompak
10.02.2014, 18:31
Не в этом проблема, просто ошибся здесь. Она все равно не работает :)

danik.js
10.02.2014, 18:33
При попытке проверить через RegExp, не может найти
Проверим?

<div id="item">адам</div>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
var val = 'а[^a]*$';
var re = new RegExp(val, 'i');
if (re.test($('#item').text()) ) {
alert('Ok!');
};
</script>

рони
10.02.2014, 18:35
Top-tompak,
<!DOCTYPE HTML>

<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>

<body>
<div id="item">адам</div>
<script>
var val = 'а[^a]*$';
var re = new RegExp(val, 'i');
if (re.test($('#item').text()) ) {
alert('Ok!');
};

</script>
</body>

</html>

рони
10.02.2014, 18:36
Top-tompak,
кодировка ?

Top-tompak
10.02.2014, 18:40
danik.js, большое спасибо! Тогда выложу проблему полностью:

<!DOCTYPE html>
<html>
<head>
<title>Поиск</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width">
<link href="style.css" rel="stylesheet" type="text/css">
<script src="jquery.js" type="text/javascript"></script>
<script src="main.js" type="text/javascript"></script>
</head>
<body>
<div class="wrap">
<div class="question">акдбука</div>
<div class="question">акажср</div>
<div class="question">аксмронббложбжж</div>
</div>
</body>
</html>



$(function() {
$('.question').each(function(k, v) {
//console.log('value - ' + $(this).text().toString());
var val = 'а[^a]*$';
var re = new RegExp(val, 'i');
if (re.test($(this).text().toString()) ) {
console.log('This ok - ' + $(this).text());
};
});
});

рони
10.02.2014, 18:44
var val = 'а[^a]*$';
что вы ищите таким образом????!!!!

Top-tompak
10.02.2014, 18:52
там просто есть
<input type="text" name="question" placeholder="Вопрос">
и через keyup, получаю значение var val = question + '[^a]*$';
$(function() {
$('input[name=question]').keyup(function() {
console.log('keyup()');
var question = $('input[name=question]').val();
console.log('question - ' + question);
$('.question').each(function(k, v) {
//console.log('value - ' + $(this).text().toString());
var val = question + '[^a]*$';
var re = new RegExp(val, 'i');
if (re.test($(this).text()) ) {
console.log('This ok - ' + $(this).text());
};

});
});
});

рони
10.02.2014, 19:00
Сообщение от Top-tompak
var val = 'а[^a]*$';
что вы ищите таким образом????!!!!
сам себе отвечу -- найти 1 русскую букву в любом месте русского слова -- остальное неимеет значения

Top-tompak
10.02.2014, 19:08
рони, да но может быть и более букв

рони
10.02.2014, 19:13
Top-tompak,
а то что буквы а разные это вам так и нужно
var val = 'а[^a]*$'

Top-tompak
10.02.2014, 19:29
рони, да, просто там должны быть все буквы и цифры. :) Там английских не будет.

рони
10.02.2014, 19:32
Top-tompak,
и что не так работает?
:-?
<!DOCTYPE HTML>

<html>

<head>
<title>Untitled</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>

<body>
<div class="wrap">
<div class="question">акдбука</div>
<div class="question">акажср</div>
<div class="question">аксмронббложбжж</div>
</div>
<input type="text" name="question" placeholder="Вопрос">
<script>
$(function() {
$('input[name=question]').keyup(function() {
//console.log('keyup()');
var question = $('input[name=question]').val();
//console.log('question - ' + question);
$('.question').each(function(k, v) {
//console.log('value - ' + $(this).text().toString());
var val = question + '[^а]*$';
var re = new RegExp(val, 'i');
if (re.test($(this).text()) && question) {
alert('This ok - ' + $(this).text().match(re));
};

});
});
});

</script>
</body>

</html>

Top-tompak
10.02.2014, 19:46
рони, Большое спасибо! Но я так и не понял почему у меня не работает

UPD: Извните ваш код 100% работает я вам очень очень рад))