Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


JavaScript работа со строками



Мы уже не раз использовали строковые литералы, которые представляют собой последовательность символов, заключенную в одинарные или двойные кавычки. Все строки являются объектами типа 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);

 


Поделиться:



Последнее изменение этой страницы: 2019-06-08; Просмотров: 58; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь