comparison xml/ru/docs/njs/reference.xml @ 2316:3a8d96efece6

Translated String object into Russian in njs.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 29 Nov 2018 19:38:29 +0300
parents a1d0238ffb61
children 9d502d4305ac
comparison
equal deleted inserted replaced
2315:ae56e4613280 2316:3a8d96efece6
461 461
462 </section> 462 </section>
463 463
464 </section> 464 </section>
465 465
466
467 <section id="core" name="Core">
468
469
470 <section id="string" name="Строка">
471
472 <para>
473 В njs существует два типа строк: строка Unicode (по умолчанию) и
474 байтовая строка.
475 </para>
476
477 <para>
478 Строка Unicode соответствует строке ECMAScript,
479 содержащей символы Unicode.
480 </para>
481
482 <para>
483 Байтовые строки содержат последовательность байт и
484 используются для сериализации строк Unicode
485 во внешние данные и десериализации из внешних источников.
486 Например метод <link id="string_toutf8">toUTF8()</link> сериализует
487 строку Unicode в байтовую строку используя кодировку UTF8:
488 <example>
489 >> '£'.toUTF8().toString('hex')
490 'c2a3' /* C2 A3 является UTF8-представлением codepoint 00A3 ('£') */
491 </example>
492 Метод <link id="string_tobytes">toBytes()</link> сериализует
493 строку Unicode с codepoints до 255 в байтовую строку,
494 в противном случае возвращается <literal>null</literal>:
495 <example>
496 >> '£'.toBytes().toString('hex')
497 'a3' /* a3 является байтом, равным codepoint 00A3 ('£') */
498 </example>
499 В различные кодировки могут быть преобразованы только байтовые строки.
500 Например строка не может быть кодирована напрямую в <literal>hex</literal>:
501 <example>
502 >> 'αβγδ'.toString('base64')
503 TypeError: argument must be a byte string
504 at String.prototype.toString (native)
505 at main (native)
506 </example>
507 Чтобы преобразовать строку Unicode в hex,
508 сначала необходимо её преобразовать в байтовую строку и затем в hex:
509 <example>
510 >> 'αβγδ'.toUTF8().toString('base64')
511 'zrHOss6zzrQ='
512 </example>
513
514 <list type="tag">
515
516 <tag-name id="string_bytesfrom"><literal>String.bytesFrom(<value>массив</value>
517 | <value>строка</value>, <value>кодировка</value>)</literal></tag-name>
518 <tag-desc>
519 (только в njs) Создаёт байтовую строку или из массива, содержащего октеты,
520 или из кодированной строки
521 (<link doc="../njs/changes.xml" id="njs0.2.3">0.2.3</link>).
522 Кодировкой может быть
523 <literal>hex</literal>,
524 <literal>base64</literal> и
525 <literal>base64url</literal>.
526 <example>
527 >> String.bytesFrom([0x62, 0x75, 0x66, 0x66, 0x65, 0x72])
528 'buffer'
529
530 >> String.bytesFrom('YnVmZmVy', 'base64')
531 'buffer'
532 </example>
533 </tag-desc>
534
535 <tag-name id="string_fromcharcode"><literal>String.fromCharCode(<value>CharCode1</value>[, ...[,
536 <value>CharCodeN</value>]])</literal></tag-name>
537 <tag-desc>
538 Возвращает строку из одной или более Unicode codepoints.
539 <example>
540 >> String.fromCharCode(97, 98, 99, 100)
541 'abcd'
542 </example>
543 </tag-desc>
544
545 <tag-name id="string_fromcodepoint"><literal>String.fromCodePoint(<value>codePoint1</value>[, ...[,
546 <value>codePoint2</value>]])</literal></tag-name>
547 <tag-desc>
548 Возвращает строку из одной или более Unicode codepoints.
549 <example>
550 >> String.fromCodePoint(97, 98, 99, 100)
551 'abcd'
552 </example>
553 </tag-desc>
554
555 <tag-name id="string_charat"><literal>String.prototype.charAt(<value>индекс</value>)</literal></tag-name>
556 <tag-desc>
557 Возвращает строку, представляющую одну кодовую единицу Unicode
558 внутри указанного <literal>индекса</literal>;
559 пустая строка, если индекс вне диапазона значений.
560 Индекс может быть числом
561 между 0 и длиной строки минус 1.
562 Если индекс не указан, то значение по умолчанию равно <literal>0</literal>,
563 т.е. возвращается первый символ в строке.
564 </tag-desc>
565
566 <tag-name id="string_codepointat"><literal>String.prototype.CodePointAt(<value>позиция</value>)</literal></tag-name>
567 <tag-desc>
568 Возвращает число, представляющее codepoint-значение символа
569 в пределах указанной <literal>позиции</literal>;
570 <literal>undefined</literal>, если элемент в позиции отсутствует.
571 <example>
572 >> 'ABCD'.codePointAt(3);
573 68
574 </example>
575 </tag-desc>
576
577 <tag-name id="string_concat"><literal>String.prototype.concat(<value>строка1</value>[, ...,
578 <value>строкаN</value>])</literal></tag-name>
579 <tag-desc>
580 Возвращает строку, содержающую результат объединения указанных
581 <literal>строк</literal>.
582 <example>
583 >> "a".concat("b", "c")
584 'abc'
585 </example>
586 </tag-desc>
587
588 <tag-name id="string_endswith"><literal>String.prototype.endsWith(<value>ПоисковаяСтрока</value>[,
589 <value>длина</value>])</literal></tag-name>
590 <tag-desc>
591 Возвращает <literal>true</literal>, если строка заканчивается символами
592 указанной строки, иначе <literal>false</literal>.
593 Необязательный параметр <literal>длина</literal> задаёт длину строки.
594 Если <value>ПоисковаяСтрока</value> не указана,
595 значением по умолчанию является длина строки.
596 <example>
597 >> 'abc'.endsWith('abc')
598 true
599 >> 'abca'.endsWith('abc')
600 false
601 </example>
602 </tag-desc>
603
604 <tag-name id="string_frombytes"><literal>String.prototype.fromBytes(<value>начало</value>[,
605 <value>конец</value>])</literal></tag-name>
606 <tag-desc>
607 (только в njs) Возвращает новую строку Unicode из байтовой строки,
608 в которой каждый байт заменяется соответствующей Unicode codepoint.
609 </tag-desc>
610
611 <tag-name id="string_fromutf8"><literal>String.prototype.fromUTF8(<value>начало</value>[,
612 <value>конец</value>])</literal></tag-name>
613 <tag-desc>
614 (только в njs) Преобразует байтовую строку, содержащую валидную строку UTF8,
615 в строку Unicode,
616 иначе возвращается <literal>null</literal>.
617 </tag-desc>
618
619 <tag-name id="string_includes"><literal>String.prototype.includes(<value>поисковаяСтрока</value>[,
620 <value>позиция</value>]))</literal></tag-name>
621 <tag-desc>
622 Возвращает <literal>true</literal>, если строка ищется внутри другой строки,
623 иначе <literal>false</literal>.
624 Необязательный параметр <literal>позиция</literal> задаёт позицию
625 внутри строки, от которой начинается поиск для <literal>поисковойСтроки</literal>.
626 Значение по умолчанию равно 0.
627 <example>
628 >> 'abc'.includes('bc')
629 true
630 </example>
631 </tag-desc>
632
633 <tag-name id="string_indexof"><literal>String.prototype.indexOf(<value>поисковаяСтрока</value>[,
634 <value>fromIndex</value>])</literal></tag-name>
635 <tag-desc>
636 Возвращает позицию первого появления
637 <literal>поисковойСтроки</literal>.
638 Поиск начинается с <literal>fromIndex</literal>.
639 Возвращает <value>-1</value>, если значение не найдено.
640 <literal>fromIndex</literal> является числом,
641 значение по умолчанию равно 0.
642 Если <literal>fromIndex</literal> меньше, чем 0
643 или больше, чем
644 <link id="string_length">String.prototype.length</link><value></value>,
645 поиск начнётся на индексе <value>0</value> и
646 <value>String.prototype.length</value>.
647 <example>
648 >> 'abcdef'.indexOf('de', 2)
649 3
650 </example>
651 </tag-desc>
652
653 <tag-name id="string_lastindexof"><literal>String.prototype.lastIndexOf(<value>поисковаяСтрока</value>[,
654 <value>fromIndex</value>])</literal></tag-name>
655 <tag-desc>
656 Возвращает позицию последнего появления
657 of the <literal>поисковойСтроки</literal>,
658 поиск осуществляется в обратном порядке от <literal>fromIndex</literal>.
659 Возвращает <value>-1</value>, если значение не найдено.
660 Если значение <literal>поисковойСтроки</literal> пустое,
661 то возвращается <literal>fromIndex</literal>.
662 <example>
663 >> "nginx".lastIndexOf("gi")
664 1
665 </example>
666 </tag-desc>
667
668 <tag-name id="string_length"><literal>String.prototype.length</literal></tag-name>
669 <tag-desc>
670 Возвращает длину строки.
671 <example>
672 >> 'αβγδ'.length
673 4
674 </example>
675 </tag-desc>
676
677 <tag-name id="string_match"><literal>String.prototype.match([<value>регулярноеВыражение</value>])</literal></tag-name>
678 <tag-desc>
679 Возвращает совпадение при сопоставлении строки с
680 регулярным выражением.
681 <example>
682 >> 'nginx'.match( /ng/i )
683 'ng'
684 </example>
685 </tag-desc>
686
687 <tag-name id="string_padend"><literal>String.prototype.padEnd(<value>длина</value>
688 [, <value>строка</value>])</literal></tag-name>
689 <tag-desc>
690 Возвращает строку указанной длины,
691 добавляя строку в конец указанной
692 строки (<link doc="../njs/changes.xml" id="njs0.2.3">0.2.3</link>).
693 <example>
694 >> '1234'.padEnd(8, 'abcd')
695 '1234abcd'
696 </example>
697 </tag-desc>
698
699 <tag-name id="string_padstart"><literal>String.prototype.padStart(<value>длина</value>
700 [, <value>строка</value>])</literal></tag-name>
701 <tag-desc>
702 Возвращает строку указанной длины,
703 добавляя строку к началу указанной
704 строки (<link doc="../njs/changes.xml" id="njs0.2.3">0.2.3</link>).
705 <example>
706 >> '1234'.padStart(8, 'abcd')
707 'abcd1234'
708 </example>
709 </tag-desc>
710
711 <tag-name id="string_repeat"><literal>String.prototype.repeat(<value>число</value>)</literal></tag-name>
712 <tag-desc>
713 Возвращает строку
714 с указанным числом копий строки.
715 <example>
716 >> 'abc'.repeat(3)
717 'abcabcabc'
718 </example>
719 </tag-desc>
720
721 <tag-name id="string_replace"><literal>String.prototype.replace([<value>регулярноеВыражение</value>|<value>string</value>[,
722 <value>string</value>|<value>function</value>]])</literal></tag-name>
723 <tag-desc>
724 Возвращает новую строку, которая сопоставляется со
725 строкой или регулярным выражением,
726 и заменяется на <literal>строку</literal> или <literal>функцию</literal>.
727 <example>
728 >> 'abcdefgh'.replace('d', 1)
729 'abc1efgh'
730 </example>
731 </tag-desc>
732
733 <tag-name id="string_search"><literal>String.prototype.search([<value>регулярноеВыражение</value>])</literal></tag-name>
734 <tag-desc>
735 Осуществляет поиск строки при помощи регулярного выражения.
736 <example>
737 >> 'abcdefgh'.search('def')
738 3
739 </example>
740 </tag-desc>
741
742 <tag-name id="string_slice"><literal>String.prototype.slice(<value>начало</value>[,
743 <value>конец</value>])</literal></tag-name>
744 <tag-desc>
745 Возвращает новую строку, содержащую часть
746 исходной строки между <literal>началом</literal>
747 и <literal>концом</literal> или
748 от <literal>начала</literal> до конца строки.
749 <example>
750 >> 'abcdefghijklmno'.slice(NaN, 5)
751 'abcde'
752 </example>
753 </tag-desc>
754
755 <tag-name id="string_split"><literal>String.prototype.split(([<value>строка</value>|<value>регулярноеВыражение</value>[,
756 <value>лимит</value>]]))</literal></tag-name>
757 <tag-desc>
758 Возвращает совпадение строки регулярному выражению.
759 Необязательный параметр <literal>лимит</literal> является числом, задающим
760 ограничение на количество найденных подстрок.
761 <example>
762 >> 'abc'.split('')
763 [
764 'a',
765 'b',
766 'c'
767 ]
768 </example>
769 </tag-desc>
770
771 <tag-name id="string_startswith"><literal>String.prototype.startsWith(<value>поисковаяСтрока</value>[,
772 <value>позиция</value>])</literal></tag-name>
773 <tag-desc>
774 Возвращает <literal>true</literal>, если строка начинается с символов
775 указанной строки, иначе <literal>false</literal>.
776 Необязательный параметр <literal>позиция</literal> является местом
777 в этой строке, с которого начинается поиск <literal>поисковойСтоки</literal>.
778 Значение по умолчанию равно 0.
779 <example>
780 >> 'abc'.startsWith('abc')
781 true
782 > 'aabc'.startsWith('abc')
783 false
784 </example>
785 </tag-desc>
786
787 <tag-name id="string_substr"><literal>String.prototype.substr(<value>начало</value>[,
788 <value>длина</value>])</literal></tag-name>
789 <tag-desc>
790 Возвращает часть строки указанной <literal>длины</literal>
791 от <literal>начала</literal>
792 или от <literal>начала</literal> до конца строки.
793 <example>
794 >> 'abcdefghijklmno'.substr(3, 5)
795 'defgh'
796 </example>
797 </tag-desc>
798
799 <tag-name id="string_substring"><literal>String.prototype.substring(<value>начало</value>[,
800 <value>конец</value>])</literal></tag-name>
801 <tag-desc>
802 Возвращает часть строки между
803 <literal>началом</literal> и <literal>концом</literal> или
804 от от <literal>начала</literal> до конца строки.
805 <example>
806 >> 'abcdefghijklmno'.substring(3, 5)
807 'de'
808 </example>
809 </tag-desc>
810
811 <tag-name id="string_tobytes"><literal>String.prototype.toBytes(начало[,
812 конец])</literal></tag-name>
813 <tag-desc>
814 (только в njs) Сериализует строку Unicode в байтовую строку.
815 Возвращает <literal>null</literal>, если в строке найден символ больше, чем 255.
816 </tag-desc>
817
818 <tag-name id="string_tolowercase"><literal>String.prototype.toLowerCase()</literal></tag-name>
819 <tag-desc>
820 Преобразует строку в нижний регистр.
821 Метод поддерживает только простое свёртывание Unicode.
822 <example>
823 >> 'ΑΒΓΔ'.toLowerCase()
824 'αβγδ'
825 </example>
826 </tag-desc>
827
828 <tag-name><literal>String.prototype.toString([<value>кодировка</value>])</literal></tag-name>
829 <tag-desc>
830 <para>
831 Если кодировка не указана,
832 возвращает указанную строку Unicode string или байтовую строку как в ECMAScript.
833 </para>
834
835 <para>
836 (только в njs) Если кодировка указана,
837 кодирует <link id="string_tobytes">байтовую строку</link> в
838 <literal>hex</literal>,
839 <literal>base64</literal> или
840 <literal>base64url</literal>.
841 </para>
842 <example>
843 >> 'αβγδ'.toUTF8().toString('base64url')
844 'zrHOss6zzrQ'
845 </example>
846 </tag-desc>
847
848 <tag-name id="string_touppercase"><literal>String.prototype.toUpperCase()</literal></tag-name>
849 <tag-desc>
850 Преобразует строку в верхний регистр.
851 Метод поддерживает только простое свёртывание Unicode.
852 <example>
853 >> 'αβγδ'.toUpperCase()
854 'ΑΒΓΔ'
855 </example>
856 </tag-desc>
857
858 <tag-name id="string_toutf8"><literal>String.prototype.toUTF8(<value>начало</value>[,
859 <value>конец</value>])</literal></tag-name>
860 <tag-desc>
861 (только в njs) Сериализует строку Unicode
862 в байтовую строку при помощи кодирования UTF8.
863 <example>
864 >> 'αβγδ'.toUTF8().length
865 8
866 >> 'αβγδ'.length
867 4
868 </example>
869 </tag-desc>
870
871 <tag-name id="string_trim"><literal>String.prototype.trim()</literal></tag-name>
872 <tag-desc>
873 Удаляет пробелы в начале и конце строки.
874 <example>
875 >> ' abc '.trim()
876 'abc'
877 </example>
878 </tag-desc>
879
880 <tag-name id="encodeuri"><literal>encodeURI(<value>URI</value>)</literal></tag-name>
881 <tag-desc>
882 Кодирует URI путём замены определённых символов
883 на одну, две, три или четыре последовательности,
884 представляющие UTF-8 кодировку символа.
885 <example>
886 >> encodeURI('012αβγδ')
887 '012%CE%B1%CE%B2%CE%B3%CE%B4'
888 </example>
889 </tag-desc>
890
891 <tag-name id="encodeuricomponent"><literal>encodeURIComponent(<value>encodedURIString</value>)</literal></tag-name>
892 <tag-desc>
893 Кодирует URI путём замены определённых символов
894 на одну, две, три или четыре последовательности,
895 представляющие UTF-8 кодировку символа.
896 <example>
897 >> encodeURIComponent('[@?=')
898 '%5B%40%3F%3D'
899 </example>
900 </tag-desc>
901
902 <tag-name id="decodeuri"><literal>decodeURI(<value>encodedURI</value>)</literal></tag-name>
903 <tag-desc>
904 Декодирует ранее <link id="encodeuri">кодированный</link> URI.
905 <example>
906 >> decodeURI('012%CE%B1%CE%B2%CE%B3%CE%B4')
907 '012αβγδ'
908 </example>
909 </tag-desc>
910
911 <tag-name id="decodeuricomponent"><literal>decodeURIComponent(<value>decodedURIString</value>)</literal></tag-name>
912 <tag-desc>
913 Декодирует ранее <link id="encodeuri">кодированный</link> URI.
914 <example>
915 >> decodeURIComponent('%5B%40%3F%3D')
916 '[@?='
917 </example>
918 </tag-desc>
919
920 </list>
921 </para>
922
923 </section>
924
925 </section>
926
466 </article> 927 </article>
467 928