Меню сайта
Категории раздела
HTML [44] |
Visual C++ и MFC [21] |
c++ [78] |
php [19] |
Javascript [15] |
C# [51] |
загрузки [0] |
XNA
[10]
создание игр с помощью xna
|
Наш опрос
Друзья сайта
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Javascript |
Урок 13
Для начала определимся с некоторыми понятиями: Алфавит - конечное множество символов. Строка - конечная последовательность символов некоторого алфавита. Пустая строка - строка, не содержащая ни одного символа. Чтобы создать строковый объект можно воспользоваться конструктором 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); Существуют и другие стандартные функции, но вряд ли они вам пригодятся, поэтому рассматривать их здесь, мы не будем. Собственно и урок, посвященный строкам, на этом можно считать законченным. | |
Просмотров: 1417 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |