Javascript-форум (https://javascript.ru/forum/)
-   Я не знаю javascript (https://javascript.ru/forum/ya-ne-znayu-javascript/)
-   -   Помогите новичку (https://javascript.ru/forum/ya-ne-znayu-javascript/30399-pomogite-novichku.html)

dmpol18 03.08.2012 00:20

Помогите новичку
 
Вложений: 1
есть "простой" код
не пойму почему зацикливается while
делаю под if - все работает, т.е. команды правильные
смысл в том, чтобы вводишь например
"карандаш Master 2 шт."
на выходе
"master_2"
кирилицу убрал, "." и "," заменил на "-",
теперь надо, чтобы если в конце - или _
то удаляем, пока в конце не будет символ или цифра...
помогите пожалуйста...

кстати параллельно - создал кнопку, но по онклик не активируется функция -
пришлось ссылку делать(

Gozar 03.08.2012 00:32

Цитата:

Сообщение от dmpol18
не пойму почему зацикливается while

Никогда так не делай:

var i = 1;
while (i>0) {	
    if(...) { 
    } 
    else {
	i = 0
    }
}

Никогда не присваивай противоречивые условия, если не уверен в результате.

Gozar 03.08.2012 00:36

ps: ты на каком языке пишешь мил человек?

var lastChar = 'Охренеть';
if(lastChar = '-' || '_') {
    alert('фига се');		
}

Gozar 03.08.2012 00:40

А вот ещё тебе фокус:

var lastChar = 'Охренеть';
if(lastChar == '-' || '_') {
    alert('фига се');		
}


И наконец, логичное решение:
var lastChar = 'Охренеть';
if(lastChar == '-' || lastChar == '_') {
    alert('фига се');		
} 
else {
    alert('Всё ок');
}

dmpol18 03.08.2012 00:42

Цитата:

Сообщение от Gozar (Сообщение 194155)
ps: ты на каком языке пишешь мил человек?

var lastChar = 'Охренеть';
if(lastChar = '-' || '_') {
    alert('фига се');		
}

если выполнить
var lastChar = urlCode.charAt(urlCode.length - 1);
	alert (lastChar);

то покажет последний символ... как и надо...


так что посоветуете?)
в плане кода))

Gozar 03.08.2012 00:46

Цитата:

Сообщение от dmpol18
так что посоветуете?)

Учи язык.

Я тебе уже показал что ты пишешь на неверной логике.

Gozar 03.08.2012 00:47

Цитата:

Сообщение от dmpol18
если

Если да кабы, во рту выросли грибы. Не различаешь равно(==) и присваивание (=).

dmpol18 03.08.2012 00:49

вот работает, но мне бы зациклить до букв/цифр

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>URL</title>
<script type="text/javascript">
function urlCode()
{
	var urlCode = document.getElementById("urlCode").value;
	var urlCode = urlCode.replace(/\s/g,"_");
	var urlCode = urlCode.replace(/\./g,"-")
	var urlCode = urlCode.replace(/\,/g,"-");
	var urlCode = urlCode.replace(/[а-яА-Я]/g,"");
	var urlCodeResult = document.getElementById("urlCodeResult");
	urlCodeResult.style.textTransform = "lowercase";
	var lastChar = urlCode.charAt(urlCode.length - 1);
	alert ('Строка:'+urlCode);
	alert ('Последний символ:'+lastChar);	
	if(lastChar = '-' || '_')
		{
			urlCode = urlCode.substring(0,urlCode.length-1);
			lastChar = urlCode.charAt(urlCode.length - 1);
		}
		urlCodeResult.appendChild(document.createTextNode(urlCode));	
}
</script>
</head>

<body>
<h2><a href="javascript:urlCode()">Convert</a></h2>
<form id="urlForm" onSubmit="urlCode()">
	<input type="text" id="urlCode">
    <input type="button" value="Convert" onClick="urlCode()">
</form>
<section>
	<p id="urlCodeResult"></p>
</section>
</body>
</html>

Gozar 03.08.2012 00:49

ps: И да, ты не понял того, что я тебе написал. Читай до полного осознания. Столько раз, сколько будет нужно. У тебя ошибка.

if(lastChar = '-' || '_')
//тут всегда lastChar будет присвоен - (дефис)

dmpol18 03.08.2012 00:50

Цитата:

Сообщение от Gozar (Сообщение 194163)
Если да кабы, во рту выросли грибы. Не различаешь равно(==) и присваивание (=).

о, теперь понятно)

учить буду конечно, просто код нужен сейчас...


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