Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
JavaScript работа со строками
Мы уже не раз использовали строковые литералы, которые представляют собой последовательность символов, заключенную в одинарные или двойные кавычки. Все строки являются объектами типа String и с ними можно производить некоторые действия, например, мы уже знакомы с операцией конкатенации, т.е. объединения строк. В этом уроке посмотрим другие возможности работы со строками.
Чтобы создать строковый объект можно воспользоваться конструктором newString. Например:
var s = newString(" Итого: " );
Если применить единственное свойство объекта String - length, то мы узнаем длину строки. Рассмотрим методы, влияющие на строку:
Для примера напишем сценарий, который будет определять, сколько раз заданное слово встречается в определенном тексте. Код 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 определен ряд стандартных функций работы со строками:
Помните, когда в предыдущих уроках, мы брали числа, введенные пользователем, и умножали на 1. Таким образом, мы их из строки переводили в число. Например:
var a1=1*obj.a1.value;
То же самое мы могли бы записать, используя стандартную функцию Number(s):
var a=obj.a1.value; var a1=Number(a);
|
Последнее изменение этой страницы: 2019-06-08; Просмотров: 58; Нарушение авторского права страницы