Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Regular Expressions - поиск (https://javascript.ru/forum/events/34753-regular-expressions-poisk.html)

Marker 17.01.2013 13:03

Regular Expressions - поиск
 
Добрый день,
Надо сделать такое.
Есть начальный текст к примеру "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

Цитата:

Сообщение от Marker
Не пойму

Прокоментируй вот эту строку

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

Цитата:

Сообщение от ksa (Сообщение 227759)
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

Цитата:

Сообщение от Marker
Если не /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

Цитата:

Сообщение от Marker
Содержимое 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

Цитата:

Сообщение от Marker
"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, ты видишь как я делаю примеры? Кому нужны твои огрызки? :)

Цитата:

Сообщение от Marker
Я попытался true, false изменить

Много кто уже пытался - это бесполезно. :D

Цитата:

Сообщение от Marker
if (text != -1)

Ты хоть понимаешь что с чем ты тут сравниваешь?

Marker 17.01.2013 14:20

еслиб понимал, не спрашивал бы)

ksa 17.01.2013 14:21

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


Часовой пояс GMT +3, время: 03:13.