Вход

Просмотр полной версии : Regular Expressions - поиск


Marker
17.01.2013, 13:03
Добрый день,
Надо сделать такое.
Есть начальный текст к примеру "Hello, this is Tigran's javascript function.".
В инпуте пишеться слово - Hello (оно же Regular Expression).
Если слово, написанное в инпуте было найденно в тексте, должно написать Found, если нет, то Not found. Все это должно работать при клике на кнопку.

Я сделал так :


var string = "Hello, this is Tigran's javascript function."
document.write(string);
function search() {
var regExp = /document.getElementById.input.value/;
var match = string.search(regExp);
if (match != -1) {
document.write("Found");
}
else {
document.write("Nothing found");
}
}


в ХТМЛ


<input id="input" type="text"></input>
<button onclick="search()">Search</button>


В итоге всегда отображает Not found. Не пойму, помогите.

ksa
17.01.2013, 13:05
Не пойму
Прокоментируй вот эту строку

var regExp = /document.getElementById.input.value/;

ksa
17.01.2013, 13:08
Marker, разницу улавливаешь?

var expr = new RegExp('\\w', 'ig');
// или
var expr = /\w/gi;
http://javascript.ru/RegExp

Marker
17.01.2013, 13:14
Marker, разницу улавливаешь?

var expr = new RegExp('\\w', 'ig');
// или
var expr = /\w/gi;
http://javascript.ru/RegExp
Мне нужно чтобы regExp было то что написано в input. Если не /document.getElementById.input.value/ то как?

ksa
17.01.2013, 13:19
Если не /document.getElementById.input.value/ то как?
Я тебе специально показал два варианта использования. ;)
И намекнул, что ты выбрал не тот вариант... Что тогда остаётся? :)

Marker
17.01.2013, 13:21
Ну я не понял как твои варианты использовать на моем примере.

Marker
17.01.2013, 13:24
var expr = new RegExp(document.getElementById.input.value);
так?

ksa
17.01.2013, 13:24
Marker, ну косинус же! (с)

var regExp = new RegExp(document.getElementById.input.value);

Marker
17.01.2013, 13:26
var string = "Hello, this is Tigran's javascript function."
document.write(string);
function search() {
var RegExp = new RegExp(document.getElementById.input.value);
var match = string.search(RegExp);
if (match != -1) {
document.write("Found");
}
else {
document.write("Nothing found");
}
}

<input id="input" type="text"></input>
<button onclick="search()">Search</button>

Не реагирует на клик на кнопку, ничего не произходит.

ksa
17.01.2013, 13:30
Marker, прокоментируй вот эту строку...

document.getElementById.input.value

Marker
17.01.2013, 13:35
Содержимое input-a не так ли?

ksa
17.01.2013, 13:47
Содержимое input-a не так ли?
А ты проверь. ;)

Вот тебе какой-никакой, а вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
var string = "Hello, this is Tigran's javascript function."
document.write(string);
function s() {
var r = document.getElementById('i').value;
r =new RegExp(r);
alert(string.search(r)!=-1);
}
</script>
</head>
<body>
<input id="i" type="text" />
<button onclick="s()">Search</button>
</body>
</html>

Marker
17.01.2013, 13:51
"ig" - что вот это значит?

ksa
17.01.2013, 13:53
"ig" - что вот это значит?
Это написано в букваре...
http://javascript.ru/RegExp


Можно и без них...

Marker
17.01.2013, 14:00
Cпасибо, но возникла ещё одна проблема.
Я попытался true, false изменить -

var string = "Hello, this is Tigran's javascript function."
document.write(string);
function search() {
var text = document.getElementById('input').value;
text = new RegExp(text, "ig");
if (text != -1) {
alert("Found!");
}
else {
alert("Not Found!")
}
}


<input id="input" type="text"></input>
<button onclick="search()">Search</button>

Всегда показывает Found! - что не так)

ksa
17.01.2013, 14:18
Marker, ты видишь как я делаю примеры? Кому нужны твои огрызки? :)

Я попытался true, false изменить
Много кто уже пытался - это бесполезно. :D

if (text != -1)
Ты хоть понимаешь что с чем ты тут сравниваешь?

Marker
17.01.2013, 14:20
еслиб понимал, не спрашивал бы)

ksa
17.01.2013, 14:21
Marker, тогда пора начать читать хоть какой-то учебник по JS...