2009-08-22 2 views
0

У меня есть проект, в котором я должен определить, содержит ли строка строку set. Пример: Что я ищу «website.com» Что может выглядеть «jsngsowebsite.comadfjubj»Проверка содержимого строки с помощью Javascript

До сих пор мои endevours дали это:

titletxt = document.getElementById('title'); 
titlecheck=titletxt.IndexOf("website.com"); 

if (titlecheck>=0) 
{ 
    return false; 
} 

который не похоже, делают трюк, любые предложения?

ответ

1

функции Javascript чувствительны к регистру - indexOf не IndexOf

4
function text(el) { 
    return el.innerText ? el.innerText : el.textContent; 
} 

function contains(substring, string) { 
    return string.indexOf(substring)>=0 
} 

contains('suggestions', text(document.getElementsByTagName('body')[0])) 

Заменить 'предложения' и document.getElements ... со строкой и ссылкой дом элемента.

titlecheck=titletxt.IndexOf("website.com"); 

Это выглядит, как вы пытаетесь использовать IndexOf (нижний регистр I) на элементе DOM, который даже не будет иметь этот метод, текст внутри TextContent (стандарт DOM собственности) или InnerText (IE специфическое свойство).

+0

Функция contains должна быть> = 0, но в противном случае +1 для указания внутреннегоText элемента DOM – gnarf

+0

спасибо - проскользнул мой разум, хотя innerText имеет значение IE DOM. –

0

Вы можете также использовать String.match (...)

title = document.getElementById('title'); 
titletxt = title.innerText ? title.innerText : title.textContent 
titlecheck = titletxt.match("website.com"); 

if (titlecheck != null) { 
    return false; 
} 

String.match возвращает нулевое значение, если совпадение не найдено, и возвращает строку поиска («website.com»), если матч найдено

1

Вы можете использовать метод IndexOf():

название = "lalalawebsite.comkkk";

// indexOf возвращает -1, если строка 'website.com' не найдена в 'title' titlecheck = title.indexOf ("website.com")> 0? «найдено»: «не найден»;

alert (titlecheck);

Смежные вопросы