Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа со строками (https://javascript.ru/forum/misc/7274-rabota-so-strokami.html)

Destrifer 24.01.2010 00:26

Работа со строками
 
c=1;d=2;
	a=c+''+d;\\преобразуем в строку
	str=parseInt(a);\\парсим
	b=str.charAt(0);\\извлекаем первый символ
	alert(b);


Почему ругается?:cray:

PeaceCoder 24.01.2010 00:29

Поточму что Вы пытаетесь взять символ из числа
b=(parseInt(c+d+'')+'')[0]

Destrifer 24.01.2010 00:34

Цитата:

Сообщение от PeaceCoder (Сообщение 41757)
Поточму что Вы пытаетесь взять символ из числа
b=(parseInt(c+d+'')+'')[0]

Выдает 3 (а надо 1)

PeaceCoder 24.01.2010 00:42

b=(parseInt(''+c+d)+'')[0]

не там кавычки поставил

Destrifer 24.01.2010 00:44

Спасибо

DartVeider 27.05.2013 23:23

Подскажите, пожалуйста. Не знаю язык (буду учить, честно) но нужно сейчас решить такую проблему

На входе:
What is 14+5?

На выходе надо дать ответ. Я понимаю алгоритм: вытащить то, что будет после второго пробела и до +, потом - то, что после + и до пробела. Т.к. числа могут быть и однозначные, и двухзначные. Подскажите, с какими функциями работать, пожалуйста.

tsigel 28.05.2013 08:18

DartVeider,
replace()
split()
parseInt()

rgl 28.05.2013 10:43

Цитата:

Сообщение от DartVeider (Сообщение 253130)
Подскажите, пожалуйста. Не знаю язык (буду учить, честно) но нужно сейчас решить такую проблему

На входе:
What is 14+5?

На выходе надо дать ответ. Я понимаю алгоритм: вытащить то, что будет после второго пробела и до +, потом - то, что после + и до пробела. Т.к. числа могут быть и однозначные, и двухзначные. Подскажите, с какими функциями работать, пожалуйста.

var s = "What is 14+5?";

function f( s ) {
  var t = s.match( /(\d+)([-+*\/])(\d+)/ );
  if( ! t )
    return null;
  t[1] = parseInt( t[1] ); t[3] = parseInt( t[3] );
  switch( t[2] ) {
    case "+":
      return t[1] + t[3];
    case "-":
      return t[1] - t[3];
    case "*":
      return t[1] * t[3];
    case "/":
      return t[1] / t[3];
  }
}

alert( f( s ) );


Цитата:

Сообщение от tsigel (Сообщение 253157)
DartVeider,
replace()
split()
parseInt()

При чем тут split() и replace() ???

tsigel 28.05.2013 11:20

Я бы с помощью replace удалил из строки все буквы и пробелы, затем сплитом поделил полученное через знак на переменные.

HJ90 28.05.2013 11:55

a1 = 4
a2 = 9
result = "a"+"1"
alert(result) // нужно 4

Здравствуйте!
Подскажите пожалуйста, можно ли сконструировать имя переменной из строки и числа
чтобы получить доступ к a1?
Спасибо!

ksa 28.05.2013 11:58

Цитата:

Сообщение от HJ90
можно ли сконструировать переменную из строки и числа
чтобы получить доступ к переменной a1?

Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
a1 = 4;
a2 = 9;
result = window["a"+"1"]
alert(result)
</script>
</head>
<body>
</body>
</html>

rgl 28.05.2013 12:05

Еще вариант:
a1 = 4
a2 = 9
result = eval("a"+"1")
alert(result) // нужно 4

ksa 28.05.2013 13:19

rgl, мне за примеры с eval() постоянно минусуют карму... :D

Aetae 28.05.2013 14:00

И првильно делают.)

rgl 28.05.2013 14:47

Цитата:

Сообщение от ksa (Сообщение 253189)
rgl, мне за примеры с eval() постоянно минусуют карму... :D

Фу как некрасиво. Сказать что думаешь можно, но минус зачем??? Тем более, это работает, а твой способ - нет (точнее, не всегда). Во-первых (хоть на этом форуме с этим и будут спорить но это так) не везде есть windows, а во-вторых, переменные могут быть не глобальными.
А про eval, разработчики языка, стандарта, такие глупцы, сделали eval не понимая? eval - да, не надо использовать там, где можно, но если без никак, то ничего другого не остается.

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function f() {
  var a1 = 4;
  var a2 = 9;
  var result = window["a"+"1"]
  alert(result);
  result = eval( "a"+"1" );
  alert(result);
}

f();
</script>
</head>
<body>
</body>
</html>

ksa 28.05.2013 15:14

Цитата:

Сообщение от rgl
но минус зачем?

Это уже к авторам тех минусов... :D

Aetae 28.05.2013 15:18

Кекеке.:haha:

HJ90 28.05.2013 17:10

Большое спасибо всем за помощь!
через eval то что надо! :)

HJ90 29.05.2013 00:51

А есть возможность обратно записать значение в эту конструкцию, или как-то по другому?
Может я не тем путем иду...

Я передаю 2 аргументы (value и id) с 20-ти инпутов в функцию JS.
Хочу чтобы эти данные обрабатывались универсальным кодом, а не копипастом для каждого инпута.
Поэтому решил подставлять в код переменные аргументов, в зависимости какой инпут передает значение

Если копипастом будет так:
view.hlookat2.value = view.hlookat.value

То есть у меня копируется значение с html5-ползунка в инпут text

UPD: разобрался...
извините, я только начал учить JS.

x = "hlookat_" + "2"
document.getElementById(x).value = hlookat.value


Часовой пояс GMT +3, время: 21:53.