0 / 0 / 0
Регистрация: 04.02.2016
Сообщений: 11
1

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

11.01.2018, 09:08. Показов 551. Ответов 5
Метки нет (Все метки)

Есть допустим строка var str="http://site.ru/article#section6";
Нужно проверить есть ли в этой строке наличие #section6, если оно есть, то оставляем как есть, если нет, то добавить "#section6"
Но надо еще учитывать, что строка может быть и str="http://site.ru/article/statya1#section6"
Что-то у меня не выходит.
Javascript
1
2
3
4
5
6
7
8
9
<script>
       var pattern = /article$/; /*Пока не использую, не знаю нужно ли? */
       var str="http://site.ru/article#section6";
       document.write("Строка первоначальная "+str);
       if(str.indexOf("article") && !str.indexOf("#section6")){
          str2=str+'#section6';
          document.write(str2);
       }
</script>
Сейчас на условие вообще не исполнитель не переходит. Вроде пишу условие "если есть 'article' и нету 'section6', то выполнить то-то. Вот видимо с отрицанием ошибаюсь. Как сделать правильно, подскажите пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.01.2018, 09:08
Ответы с готовыми решениями:

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Задание по темам: ООП, исключения, работа со строками (возможно применение коллекций List), работа с компоновщиком
ТЯЖЕЛО РАБОТАТЬ С КОМПОНОВЩИКОМ. БУДУ РАД ВАШИМ ОТВЕТАМ. 1. Ознакомиться с принципом работы...

5
the hardway first
Эксперт JS
2421 / 1806 / 894
Регистрация: 05.06.2015
Сообщений: 3,569
11.01.2018, 09:53 2
Цитата Сообщение от immortal727 Посмотреть сообщение
Вроде пишу условие "если есть 'article' и нету 'section6'
indexOf возвращает не логическое "есть" или "нет" а позицию с которой начинается подстрока, если же подстрока не найдена, то вернётся -1. А если подстрока найдена в начале строки, то 0 - который в JavaScript кастуется в false, здорово правда ?
Следовательно ваше условие трактуется примерно так:
if (str.indexOf("article") && !str.indexOf("#section6")) => if (15 && !(-1)) => if (true && false)
0
0 / 0 / 0
Регистрация: 04.02.2016
Сообщений: 11
11.01.2018, 09:56  [ТС] 3
ну а как правильно тогда сделать, подскажите пожалуйста, что лучше применить в таком случае

Добавлено через 1 минуту
Ну а как сделать правильно? Подскажите пожалуйста. Может не ту функцию применю, а надо что-то другое?
0
615 / 461 / 164
Регистрация: 26.05.2016
Сообщений: 2,567
11.01.2018, 11:43 4
ну например так:

Javascript
1
2
var str = "http://site.ru/article";
if (str.indexOf('#section6') == -1){var str = str + '#section6';document.write(str);}else{}
1
3 / 3 / 1
Регистрация: 17.01.2017
Сообщений: 16
11.01.2018, 14:12 5
Я бы использовал метод match для поиска совпадений в строке
Javascript
1
2
3
4
5
6
7
8
var str="http://site.ru/article#section6";
console.log("Строка первоначальная "+str);
if(str.match('article') && !str.match('#section6')){
    str+='#section6';
    console.log(str);
}else{
    console.log(str);
}
0
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
11.01.2018, 15:30 6
В урле хеш всегда в конце, так что с реальными урлами проблем быть не должно

Javascript
1
2
3
4
5
var url = "www.site.com/index.php?act=test#section6";
 
if (url.includes('#')){
window.location.hash = url.substring(url.indexOf('#'));
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.01.2018, 15:30
Помогаю со студенческими работами здесь

Работа со строками в Си!
Ввести с клавиатуры символьную строку длиной не более 80 символов, рассматриваемую как произвольное...

Работа со строками
Добрый день, суть задачи такова: &quot;Дан файл, содержащий в каждой отдельной строке фамилию, предмет и...

Работа со строками!
Всем доброго времени суток! Ребята, вот какой вопрос, есть ли в лотус-скрипте функция...

Работа со строками
Уважаемые специалисты и любители 1С! Подскажите,пожалуйста,нужно написать код процедуры которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru