1. JavaScript / Говнокод #27341

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    function isNumeric(str)      //for non-numeric fields
    {
    	var FlagS=0, FlagN=0;
    	var str1=new Array();
    	
    	for(var i=0;i<str.length;i++) //convert string to a char array
    	{
    		str1[i]=str.charAt(i);
    	}	
    	for(i=0;i<str1.length;i++)   //check for digits
    	{
    		if(str1[i]>='0'&&str1[i]<='9' ) 
    		{
    			FlagN=1;
    		}
    	}
    	if(FlagS==1||FlagN==1) 		//give a final decision
    	{ 
    		FlagS=FlagN=0;
    		return true;
    	}
    }

    Красота по-индийски. FlagS не понадобился, ну и хер с ним :)

    Запостил: kropotor, 08 Апреля 2021

    Комментарии (73) RSS

    • isNumeric('aaa')
      undefined
      isNumeric('a1aa')
      true
      Ответить
      • А ты знал, что у индийцев есть такой священный знак:

        .
         /
         \/\
        \/\
          /


        ?

        > var str1=new Array();

        Как хорошо, что в JS есть злоебучий СМ!
        Ответить
        • Знал и знаю. И как это связано с говнокодом?
          Ответить
        • Сейчас тов. майор опять удолит говнокод из интернета.
          Ответить
        • ну все, бан. Допизделся.
          Ответить
        • https://www.hindustantimes.com/india/tasteless-but-true-made-in-india-hitler-ice-cream-cafe/story-C6usCqTUqv4zAeU30b0GVM.html
          Ответить
          • Я, когда смотрел влог креосана из Индии, видел, как они постоянно охуевали, когда видели свастики.

            «Может это у них священный символ такой?»

            А потом они своему подписчику из Индии через Гугл транслейт перевели что-то типа: «А вы знаете, что этот символ – свастика – это символ Гитлера и нацистов?», у индийца аж лицо помрачнело, но он головой покачал, мол, не знает )))
            Ответить
            • Индусы не знают кто такой Гитлер. Подставной был индус.
              Ответить
              • Neeraj Kumar, owner of Meerut-based MVF Products, which manufactured the cones, said cones were named after an uncle who was nicknamed “Hitler” because of his quick temper.

                “In our Uttar Pradesh village,” said Kumar, “anyone who has a ‘karak mejaz’ is called Hitler. One of my uncles is a short-tempered and strict man, so we nicknamed him Hitler.

                “While naming this particular batch of cones, I thought why can’t we have a little fun at the expense of my uncle and name the cones after him! That was how the name originated.”


                Да, это так. В Монголии, говорят, тоже всё в свастиках.
                Ответить
                • https://i.redd.it/2ye23yhpfqs11.jpg
                  Ответить
                • У японцев иероглиф 卍 [manji] хоть и не входит в список дзёё-кандзи, но часто используется, им буддистские храмы обозначают.
                  В японском сленге есть фраза まじ卍 [maji manji]. まじ в сленге существует очень давно как сокращение от 真面目 [majime] (что означает «серьёзный») и используется примерно как «Серьёзно?», «Невероятно!», «Не могу в это поверить», «Я не шучу» и т.п. Фраза «Мадзи-мандзи» появилась относительно недавно (лет пять назад) и значит по сути то же самое, что и просто «мадзи», но звучит более модно, стильно, молодёжно. Естественно, среднестатистическому японцу даже в голову не придёт ассоциировать мандзи/свастику с Третьим рейхом, такие заёбы есть только в странах, где ничего не знают про буддизм/индуизм.
                  Ответить
                  • нужно подобрать диалект в котором 卍 обозначает 88
                    (и у тебя свастон неправильный)
                    https://i.kym-cdn.com/photos/images/newsfeed/001/222/067/e7d.jpg
                    Ответить
                    • Ну, японцы же буддисты, в буддизме свастика чаще всего в левую сторону закручена (а вообще разницы вроде как нет). У индусов различаются левая и правая по смыслу, если я не ошибаюсь.
                      Ответить
                      • Правая свастика раскапывает, а левая – наоборот – закапывает?
                        Ответить
                        • Один мужик идет вдоль улицы и копает ямы, за ним второй эти ямы закапывает. Прохожий удивляется:
                          - Вы что делаете, идиоты? Один копает, второй закапывает?
                          - Я не второй, я третий. Второй не вышел на работу, он должен был деревья сажать.
                          Ответить
                      • если солярный символ, то должна по одну сторону от экватора быть левовращающей, а по другую - декстро

                        но не сходится с ареалом будоиндусов
                        Ответить
                      • Ого, ещё один анимешник на говнокоде?
                        Ответить
                      • а не синтоисты?
                        Ответить
          • >>Would the Germans name a sausage after Godse?
            >Nathuram Vinayak Godse was the assassin of Mahatma Gandhi
            godse.cx
            Ответить
    • Я пофиксил...

      function isNumeric(str) //for non-numeric fields
      {
      var FlagS=0, FlagN=0;
      var str1=new Array();

      for(var i=0;i<str.length;i++) //convert string to a char array
      {
      str1[i]=str.charAt(i);
      }
      for(i=0;i<str1.length;i++) //check for digits
      {
      if(str1[i]>='0'&&str1[i]<='9' )
      {
      FlagN=1;
      }
      else //fixed by Radjesh
      {
      FlagS=1;
      }
      }
      if (FlagS==1)
      {
      FlagN==0;
      }
      if(FlagN==1) //give a final decision
      {
      FlagS=FlagN=0; //just to be sure they are really reseted!
      return true;
      }
      if (FlagS==1) {
      return false; //no more 'undefined' thanks to FlagS!!!
      }
      }
      Ответить
      • 1.5 не распарсит...

        Это, кстати, уже было на говнокоде. Кто-то фиксил подобную функцию, постоянно добавляя новые форматы записи чисел, в итоге я навсегда расхотел делать серьёзное что-то в обход стандартной библиотеки.
        Ответить
        • Don't get bit by the goblins hiding in the float boat! DO UNIT TESTING!
          What is, and is not a float may surprise you:

          Command to parse                        Is it a float?  Comment
          --------------------------------------  --------------- ------------
          print(isfloat(""))                      False
          print(isfloat("1234567"))               True 
          print(isfloat("NaN"))                   True            nan is also float
          print(isfloat("NaNananana BATMAN"))     False
          print(isfloat("123.456"))               True
          print(isfloat("123.E4"))                True
          print(isfloat(".1"))                    True
          print(isfloat("1,234"))                 False
          print(isfloat("NULL"))                  False           case insensitive
          print(isfloat(",1"))                    False           
          print(isfloat("123.EE4"))               False           
          print(isfloat("6.523537535629999e-07")) True
          print(isfloat("6e777777"))              True            This is same as Inf
          print(isfloat("-iNF"))                  True
          print(isfloat("1.797693e+308"))         True
          print(isfloat("infinity"))              True
          print(isfloat("infinity and BEYOND"))   False
          print(isfloat("12.34.56"))              False           Two dots not allowed.
          print(isfloat("#56"))                   False
          print(isfloat("56%"))                   False
          print(isfloat("0E0"))                   True
          print(isfloat("x86E0"))                 False
          print(isfloat("86-5"))                  False
          print(isfloat("True"))                  False           Boolean is not a float.   
          print(isfloat(True))                    True            Boolean is a float
          print(isfloat("+1e1^5"))                False
          print(isfloat("+1e1"))                  True
          print(isfloat("+1e1.3"))                False
          print(isfloat("+1.3P1"))                False
          print(isfloat("-+1"))                   False
          print(isfloat("(1)"))
          Ответить
    • parseInt
      Ответить
      • Не эквивалентно. В питоне есть string.isnumeric(), вот это будет эквивалентно.
        Ответить
        • Почему не эквивалентно то.
          Ответить
          • Потому что возвращает int, это же из джавы, да? А должно тру/фолс возвращать.
            Ответить
            • Это из джаваскрипта, и если не прокатит парс, ловишь исключение, и возвращаешь фолс, а на результат интовый можно забить
              Ответить
              • Для такого всё же лучше isNaN использовать :-)
                Ответить
                • Типа присвоить и проверить на нан?
                  Ответить
                  • Нет

                    Можно делать вот так: isNaN ("123"), получится true. Эта питушня проверяет, является ли переменная или строка числом.
                    Ответить
                    • А я думал она проверяет, является др переданное ей значение наном.
                      Ответить
                      • Пиздец. Она реально это и делает. Кажется, у меня поехала крыша.
                        Ответить
                        • Пожалуй да.
                          Ответить
                        • parseInt всегда возвращает number.

                          number это плавающий питух, способный содержать в себе число с плавающей точкой или NaN или бесконечность (их там две)


                          Если строку пробразовать в число нельзя, то parseInt возвращает NaN.

                          Number.isNan получает аргумент типа number, и возвращает true, если он NaN (пушо сравнивать через == их нельзя: NaN не равен самому себе)

                          Хуёво в скриптушне без стат типизации, правда?
                          Ответить
                          • Даа, очень жалко скриптухов)

                            А я думал, мы про жабий parseInt...
                            Ответить
                            • не путай Java и JavaScript :)

                              жабий parseInt вроде исключение кидает
                              Ответить
                              • А джаваскриптушной? Вот Вистефан сказал:

                                «Это из джаваскрипта, и если не прокатит парс, ловишь исключение, и возвращаешь фолс, а на результат интовый можно забить»
                                Ответить
                                • В джаваскрипте нету ни intа*, ни исключений из parseInt
                                  Вистефан говорил про джаву.

                                  Кстати, в C# есть tryParse, а в джаве нету, потому что в джаве нету передачи по укококозателю интов

                                  *в джите есть скорее всего, в системе типов нет
                                  Ответить
                            • А в жабе ж нету нана
                              Ответить
                              • Ты смешал жабу и жабий скрипт (((
                                Ответить
                              • орлы?
                                https://docs.oracle.com/javase/7/docs/api/java/lang/Float.html#NaN
                                Ответить
                                • Ёба
                                  Ответить
                                  • просто в Java есть отдельный тип для целых чисел, а в джаваскрипте нету

                                    Теперь у них parseInt возворащает тип, который может быть NaN

                                    Джаваскриптеры-с
                                    Ответить
                                • А INF там есть? Мне, кстати, что-то подсказывает, что NaN есть в любом языке программирования, т.к. он есть в ПРОЦЕССОРЕ и ещё в спецификации питуха.
                                  Ответить
                                  • Да
                                    В IEEE 754 они есть, потому есть и в реализации
                                    Ответить
                                  • > в ПРОЦЕССОРЕ
                                    в сопроцессоре :)))

                                    arithmetic formats: sets of binary and decimal floating-point data, which consist of finite numbers (including signed zeros and subnormal numbers), infinities, and special "not a number" values (NaNs)
                                    https://en.wikipedia.org/wiki/IEEE_754
                                    Ответить
                                    • Да! Всё напутал, всё напутал. А ещё я путаю xmx, mmx, xxm и ещё какую-то штуку, возможно, я её даже уже перечислил.
                                      Ответить
                                      • xmx это опция jvm для макс размера хипа

                                        mmx это древнее расширение интела, набор инструкций для мульти медиа, которые действительно реюзали регистры FPU (мат сопроцепссора для работы с плав питухами, который с 486-го перекочевал в CPU)

                                        Потом MMX заменили на SSE, и тот стал юзать регистры XMM, и отъебался от регистров FPU

                                        А что такое xxm я не знаю
                                        Ответить
                                        • xxm это SSE, только я забыл как оно называется.

                                          Ладно, постараюсь запомнить!
                                          Ответить
                                        • "Xmx" ("-X max") — это максимальный размер хипа. Знячит*, "Xmn" ("X min") — это минямальный размер хипа!

                                          Угадай, что будет, если сделать "-Xmx4G -Xmn4G"?
                                          *Нят.
                                          Ответить
                                          • А вот и нет. Минимальный размер это Xms.

                                            misimal наверное
                                            Ответить
                                            • S это _начальный_ размер, т.е. сколько ПАМЯТИ жвм для программы аллоцирует на старте.
                                              Ответить
                                            • Да. -Xmn — это размер eden generation (или как оно там сейчас нязывается), куда складываются свежесозданные объекты перед тем, как переехать в old. "-Xmx4G -Xmn4G" — это эпический выстрел в ногу, потому что с такими нястройками вообще все объекты будут лежать в eden, и GC от такого окаваится.
                                              Ответить
                                              • GC просто будет каждый раз теребонькать все объекты?
                                                Все GC станут мажорными?
                                                Ответить
                                                • Ага, причём не просто мажорными, а минорными, но чистящими все аллоцированные объекты (выполняющими работу мажорных). С учётом того, что минорные ГЦ оптимизированы для чистки большого количества мёртвых тел — всё будет очень плохо.
                                                  Ответить
                                      • А я и не знаю что это такое. Надо асм учить
                                        Ответить
                                        • У меня по АСМ была четверка, но это меня не остановило от взлома винды из линукса )))
                                          Ответить
                                        • Асм в любом случае полезно учить, зело помогает в понимании всего
                                          Ответить
                            • Скриптухам салам, остальным соболезную
                              Ответить
                    • падажжи, isNaN ("123") это false
                      патамушт изнанка сначала сделает Number("123")
                      Ответить
                      • Да, всё так. Я просто курино прочитал.

                        Чтобы проверить, является ли строка валидным числом, нужно сделать !isNaN(x);
                        Ответить
            • (!Number.isNaN(parseInt("123")))
              Ответить

    Добавить комментарий