|
|
|
| Не могу добавить минус перед числом, все сразу перестает работать.
Минус может быть только первым в строке или отсутствовать, дальше не менее одной цифры.
как сюда минус добавить?
if(!(/[0-9]+/.test(str))){alert('не число');};
|
не хочет
if(!(/^\-?[0-9]+/.test(this.innerHTML))){};
|
| |
|
|
|
|
|
|
|
для: oldOld
(09.10.2012 в 08:01)
| | Да вроде работает, а что находится в this.innerHTML? Выведите значение при помощи alert()? | |
|
|
|
|
|
|
|
для: oldOld
(09.10.2012 в 08:01)
| | Сохраните где-нить эту табличку действия квантификаторов:
* - ноль или несколько совпадений
+ - одно или несколько совпадений
? - ноль или одно совпадение
{n} - ровно n совпадений
{n,} - не менее n совпадений
{n,m} - от n до m совпадений
|
1) у вас по условию минус может быть один или не быть вовсе
значит записываем в начале \-?
2) далее "не менее одной цифры"
значит, \d*
3) соединяем вместе \-?\d* | |
|
|
|
|
|
|
|
для: ЯСА
(09.10.2012 в 10:49)
| | Спасибо, у меня по регулярке натаскано и распечатано много разных сайтов.
this это див в который вводятся данные, вместо поля.
Вы предлагаете тоже что и у меня, увы но это не работает.
Минус может быть только один и только первым в строке. Отрицательное число!
Пока еще актуально. | |
|
|
|
|
|
|
|
для: oldOld
(09.10.2012 в 20:30)
| | работает
<div id="d0">xx</div>
<span id="d1">23</span>
<b id="d2">-1</b>
<u id="d3">-367890</u>
<script>
(function myFunc ()
{
for (var j = 0; j < 4; j++)
if (!(/^\-?\d+/.test (document.getElementById ('d' + j).innerHTML))) alert ('НЕ число');
else alert ('число');
}) ();
</script>
|
полагаю, что в итоге выяснится, что
-- или вы пытаетесь прочитать innerHTML у элемента формы (вместо чтения его value)
-- или "для красоты" код у вас написан с отступами и переносами строк, и, соответственно, первым символом будет пробельный \s | |
|
|
|
|
|
|
|
для: ЯСА
(09.10.2012 в 20:42)
| | Увы, проходит любое количество минусов и буквы
<div id="d0">xx</div> не число
<span id="d1">23</span> число
<b id="d2">-1-</b> число??????
<u id="d3">-36-78-9uuuuuuu0</u> число?????
|
А по поводу " в итоге выяснится", ну не на столько я начинающий, а то что забыл сказать что в этот элемент идет ввод с клавиатуры, каюсь.
А тем кто действительно начинающий хочу сказать, что пример ЯСА работать не будет, пока функции онлоад не дадите.
сделал страничку и тестил именно этот код в лисе, опере, ие6, кому не лень проверьте
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<title>w121</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<link rel="stylesheet" type="text/css" href="test_1.css">
<script type="text/javascript" src="test_1.js"></script>
<script type="text/javascript">
(onload=function(){
var j=5, s;
while(j--){
if(j==4){s=document.getElementById('dw'+j).value;}
else{s=document.getElementById('dw'+j).innerHTML;};
if(!(/^\-?\d+/.test(s))){
alert(s+' НЕ число'+' '+j);}
else{alert(s+' число'+' '+j);}
};
}) ();
</script>
</head>
<body>
<div id="dw0">xx</div>
<span id="dw1">23</span> <br>
<b id="dw2">-1-</b> <br>
<u id="dw3">-36-78-9uuuuuuu0</u><br>
<input type="text" value="8-90uu" id="dw4">
</body>
</html>
|
ну и где собака зарыта? | |
|
|
|
|
|
|
|
для: oldOld
(10.10.2012 в 08:18)
| | где в вашем стартовом топике хоть что-то о "продолжении"?
вы озвучили про минус и про минимум одну цифру
дальше у вас могла быть десятичная точка, символ e (для чисел в экспоненциальном формате) и вообще всё что угодно
я свою функцию заключил в исполняемую группу () (); (т,е. сделал её "чёрным ящиком") и свой скриптовой блок поместил после всех тегов, кои в функции обрабатываются
так что всё прекрасно работает и никакого onload'a здесь не надо
------
по сути:
если вам надо, чтобы ВСЯ строка была именно целым числом (любым целым - и отрицательным, и нулём, и положительным) - так об этом и надо было написать в стартовом сообщении
к регулярке в этом случае следует просто добавить мнимый символ конца строки, вот так:
if (!(/^\-?\d+$/.test (document.getElementById ('d' + j).innerHTML)))
^
|
[поправлено модератором] | |
|
|
|
|
|
|
|
для: ЯСА
(10.10.2012 в 08:45)
| | Где написано что ваш скрипт нужно нужно располагать в body после всех тегов?, нормальные люди в head скрипт кладут.
И про замыкания я знаю.
А за код спасибо, заработало.
[поправлено модератором] | |
|
|
|