Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.11.2014, 09:42
Интересующийся
Отправить личное сообщение для deep4565 Посмотреть профиль Найти все сообщения от deep4565
 
Регистрация: 16.11.2014
Сообщений: 12

Посимвольное сравнение чисел
Добрый день!

на delphi я писал код примерно такой (посимвольная проверка введенных чисел):

s:string;
if (s[1]=s[2]) and (s[2]=s[3]);
then showmessage ('ошибка ввода');
else showmessage ('нет ошибки');
проверка при нажатии на btn

Помогите переписать этот код на javascript.
Спасибо!

Последний раз редактировалось deep4565, 16.11.2014 в 09:53.
Ответить с цитированием
  #2 (permalink)  
Старый 16.11.2014, 11:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от deep4565
s:string;
var s;

В JavaScript динамическая типизация. Поэтому при объявлении переменной не требуется указывать тип. Просто присваивай ей значение любого типа, какой тебе нужен. Например:
var s;
s = 'строка';


Сообщение от deep4565
s[1]
В JS точно такой же синтаксис обращения к символам строки (и элементам массива). Только нумерация начинается не с единицы, а с нуля, как и в большинстве языков программирования.

Сообщение от deep4565
s[1]=s[2]
В JS, как и в большинстве других языков, оператор сравнения выглядит как ==, потому как = - это оператор присваивания.

Сообщение от deep4565
and
К сожалению в JS нет ключевого слова and, вместо него используется && (как во всех C-подобных языках)
Сообщение от deep4565
showmessage
В браузер встроена функция alert для показа сообщений.

Сообщение от deep4565
if (..);
then [code1]
else [code2]

В C-подобных языках условия записываются как:
if (..)
  [code1]
else
  [code2]


Если код должен содержать несколько выражений (statement), то так:

if (..) {
  [code1]
} else {
  [code2]
}
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 16.11.2014, 12:04
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

в целом странно, что чел не решил эту задачу сам, введя соответствующий запрос в поисковик и прогуглив соответствующие операторы и конструкции (информация несекретная )

Сообщение от deep4565
на delphi я писал код примерно такой (посимвольная проверка введенных чисел):

s:string;
if (s[1]=s[2]) and (s[2]=s[3]);
then showmessage ('ошибка ввода');
else showmessage ('нет ошибки');
хотя возможно не странно, так как в целом не понятно, что делает этот код, приведи полный пример
предположим, есть строка '12345', то что ты проверяешь? что '1' == '2' и '2' == '3'?
а если проверка чисел, то зачем делать сравнение посимвольно, а не использовать, скажем, StrToInt?

хотя, в целом, ты сделал одну правильную вещь - предпринял уход с delphi

Последний раз редактировалось bes, 16.11.2014 в 12:06.
Ответить с цитированием
  #4 (permalink)  
Старый 16.11.2014, 12:36
Профессор
Посмотреть профиль Найти все сообщения от krutoy
 
Регистрация: 09.11.2014
Сообщений: 610

str1="12345"
str2="11145"
check=function(str){
    if(str[0]===str[1]&&str[1]===str[2])return alert("YES"); alert("NO")
}

check(str1)
check(str2)
Ответить с цитированием
  #5 (permalink)  
Старый 17.11.2014, 09:25
Интересующийся
Отправить личное сообщение для deep4565 Посмотреть профиль Найти все сообщения от deep4565
 
Регистрация: 16.11.2014
Сообщений: 12

<input id="test" type="text" />
<script>
var s;
if (s[0]==s[1] && s[1]==s[2] && s[2]==s[3] && s[4]==[5]&& s[6]==[7];
then alert ("message1")
else alert ("message2");

</script>

что не так?

2) в делфи можно было:

var
x: integer;
x:=5;

if (s[1]=inttostr(x))......

т.е. сравнение символа строки с числом. в js как это проделать?
Ответить с цитированием
  #6 (permalink)  
Старый 17.11.2014, 12:31
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от deep4565
что не так?
Блядь все расписывал разжевывал, а ты даже не прочитал толком. Че за люди..
Сообщение от deep4565
var s;
if (s[0]==s[1] && s[1]==s[2] && s[2]==s[3] && s[4]==[5]&& s[6]==[7];
Ну и откуда в переменной, которой не назначено никакое значение возьмутся какие-то символы? Или делфи умеет читать мысли?
Сообщение от deep4565
т.е. сравнение символа строки с числом. в js как это проделать?
Бери да сравнивай. При сравнении операнды приведутся к одному типу автоматически.

alert(5 == '5');
alert(2 == '5');


Когда постишь код, жмякай кнопку
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 18.11.2014, 06:32
Интересующийся
Отправить личное сообщение для deep4565 Посмотреть профиль Найти все сообщения от deep4565
 
Регистрация: 16.11.2014
Сообщений: 12

<input id="test" type="text" />
<script>
var s = 'test'

if (s[0]==s[1] && s[1]==s[2] && s[2]==s[3] && s[3]==s[4] && s[4]==s[5]){
alert ("message1");
}
else if (s[0]==s[2] && s[2]==s[3] && s[4]==s[5] && s[5]==s[6]&& s[6]==s[7]){
alert ("message2");
}
</script>


сообщение выходит без ввода данных в input id

Последний раз редактировалось deep4565, 18.11.2014 в 06:46.
Ответить с цитированием
  #8 (permalink)  
Старый 18.11.2014, 06:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от deep4565
т.е. сравнение символа строки с числом. в js как это проделать?
Да ему charCodeAt нужен походу.
Ответить с цитированием
  #9 (permalink)  
Старый 18.11.2014, 09:46
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от deep4565
сообщение выходит без ввода данных в input id
Ну для начала, инпут станет объектом (узлом) в DOM-модели документа. Получить его (по id) можно так:
var input = document.getElementById('test');


Далее, ввод - это событие "input" (оно так называется). Самый простой способ (устаревший) навешать обработчик события:

input.oninput = function() {
    // этот код будет вызван всякий раз при вводе чего-либо в поле.
};


Современный вариант:

input.addEventListener('input', function() {
    // этот код будет вызван всякий раз при вводе чего-либо в поле.
});


Вместо события "input" можно использовать другое событие - "keyup" - опускание клавиши. Но клавиши - не единственный способ ввода в текстовое поле (не забываем про copy/paste и drag/drop).

Текущее значение инпута (строковое) доступно в свойстве input.value
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #10 (permalink)  
Старый 18.11.2014, 12:04
Интересующийся
Отправить личное сообщение для deep4565 Посмотреть профиль Найти все сообщения от deep4565
 
Регистрация: 16.11.2014
Сообщений: 12

<input id="test" type="text" />
<script>
var input = document.getElementById('test');
input.addEventListener('input', function() {
var s = 'test'
if (s[3]==s[4] && s[4]==s[5] && s[5]==s[6] && s[6]==s[7] && s[7]==s[8]){
alert ("message1");
}
else if (s[3]==s[4] && s[4]==s[5] && s[5]==s[6] && s[6]==s[7] && s[7]!=s[8]){
alert ("message2");
)};
}
</script>


Если все правильно понял, но так же не подтягивает.

Последний раз редактировалось deep4565, 18.11.2014 в 13:13.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
НОД более чем 2-х чисел Demath Общие вопросы Javascript 4 06.01.2013 05:27
Генератор случайных чисел с возможностью ввода диапазона. Как сделать? Sovereign Общие вопросы Javascript 3 10.06.2011 08:34
Сравнение чисел jQuery neutron jQuery 1 02.06.2011 17:40
Работа с последовательностью натуральных чисел Stillife Общие вопросы Javascript 1 18.05.2011 20:03
Сравнение чисел Явой ЭДИК Ваши сайты и скрипты 7 25.02.2009 23:56