Среда, 08.01.2025, 20:20
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Javascript

Урок 13
Мы уже не раз использовали строковые литералы, которые представляют собой последовательность символов, заключенную в одинарные или двойные кавычки. Все строки являются объектами типа String и с ними можно производить некоторые действия, например, мы уже знакомы с операцией конкатенации, т.е. объединения строк. В этом уроке посмотрим, что еще можно делать со строками.

Для начала определимся с некоторыми понятиями:

Алфавит - конечное множество символов.


Строка - конечная последовательность символов некоторого алфавита.


Пустая строка - строка, не содержащая ни одного символа.


Чтобы создать строковый объект можно воспользоваться конструктором newString. Например:

var s = newString("Итого:");

Если применить единственное свойство объекта String - length, то мы узнаем длину строки.
Для нашего примера, результатом выполнения s.length будет число 6.

Рассмотрим методы, влияющие на строку:

charAt(n) - возвращает символ, позицию которого определяет параметр n.
Для нашего примера, результатом выполнения s.charAt(0) будет буква "И".


substr(n1,n2) - возвращает подстроку из строки, где n1 - позиция первого символа подстроки, а n2 - количество символов в строке.
Для нашего примера, результатом выполнения s.substr(0, 4) будет подстрока "Итог".


Для примера напишем сценарий, который будет определять, сколько раз заданное слово встречается в определенном тексте.

Код html-страницы будет следующим:

<html>
<head>
<title>javascript строки</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<form name="forma11">
Введите текст:<br>
<textarea name="textin" rows="4" cols="20"></textarea><hr>
Введите слово: <input type="text" size="10" name="slovo"><hr>
<input type="button" value="Определить" onClick="numword(forma11);">
<input type="reset" value="Отменить"><hr>
Количество слов в тексте: <input type="text" size="10" name="res">
</form>
</body>
</html>

Теперь напишем саму функцию numword() на странице script.js:

function numword(obj) {
var t=obj.textin.value;
var s=obj.slovo.value;
var m=s.length;
var res=0;
var i=0;
while (i < t.length-1)
{var ch=t.substr(i,m)
if (ch==s){
res+=1;
i=i+m
}
else
i++
}
obj.res.value=res
}

Посмотрим на результат, а затем разберем написанное:
Введите текст:

Введите слово:

Количество слов в тексте:
Итак, посмотрим что же мы написали в нашей функции.
Сначала мы определили две строковые переменные, одной является текст, введенный пользователем, другой - слово.

var t=obj.textin.value;
var s=obj.slovo.value;

Затем мы определили длину искомого слова и обнулили переменную с результатом:

var m=s.length;
var res=0;

Далее с помощью цикла while, мы указали следующее: пока параметр цикла i меньше либо равен длине текста (один вычитаем, т.к. нумерация символов начинается с нуля), брать подстроку, начиная с текущего символа i и длинной равной длине искомого слова и сравнивать ее с самим искомым словом. Если результат истинен, то переменная res увеличивается на единицу, а цикл продолжает свою работу с символа, который следует за найденным словом (i=i+m-1). В противном случае - со следующего символа:

var i=0;
while (i<=t.length-1)
{var ch=t.substr(i,m)
if (ch==s){
res+=1;
i=i+m-1
}
else
i++
}

Наконец, мы отображаем результат:

obj.res.value=res



В языке javascript определен ряд стандартных функций работы со строками:

Number(s) - преобразует строковый параметр s в число.


String(n) - преобразует число n в строку.


isNaN(s) - проверяет является ли параметр s числом. Если параметр s не является числом, то возвращает значение true (истина), в противном случае - false (ложь).


Помните, когда в предыдущих уроках, мы брали числа, введенные пользователем, и умножали на 1. Таким образом, мы их из строки переводили в число. Например:

var a1=1*obj.a1.value;

То же самое мы могли бы записать, используя стандартную функцию Number(s):

var a=obj.a1.value;
var a1=Number(a);

Существуют и другие стандартные функции, но вряд ли они вам пригодятся, поэтому рассматривать их здесь, мы не будем. Собственно и урок, посвященный строкам, на этом можно считать законченным.
Категория: Javascript | Добавил: SLOT85 (07.02.2012)
Просмотров: 1417 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]