solvas-jsduck 6.0.0.beta.1888
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/COPYING +674 -0
- data/README.md +115 -0
- data/bin/solvas-jsduck +27 -0
- data/js-classes/Array.js +1054 -0
- data/js-classes/Boolean.js +110 -0
- data/js-classes/Date.js +1022 -0
- data/js-classes/Function.js +336 -0
- data/js-classes/Number.js +308 -0
- data/js-classes/Object.js +1042 -0
- data/js-classes/RegExp.js +415 -0
- data/js-classes/String.js +1052 -0
- data/lib/jsduck/aggregator.rb +200 -0
- data/lib/jsduck/app.rb +63 -0
- data/lib/jsduck/assets.rb +54 -0
- data/lib/jsduck/base_type.rb +53 -0
- data/lib/jsduck/batch_parser.rb +46 -0
- data/lib/jsduck/batch_processor.rb +83 -0
- data/lib/jsduck/cache.rb +137 -0
- data/lib/jsduck/categories/auto.rb +83 -0
- data/lib/jsduck/categories/class_name.rb +39 -0
- data/lib/jsduck/categories/factory.rb +75 -0
- data/lib/jsduck/categories/file.rb +69 -0
- data/lib/jsduck/class.rb +218 -0
- data/lib/jsduck/class_doc_expander.rb +132 -0
- data/lib/jsduck/class_name.rb +23 -0
- data/lib/jsduck/class_writer.rb +53 -0
- data/lib/jsduck/columns.rb +56 -0
- data/lib/jsduck/css/parser.rb +90 -0
- data/lib/jsduck/css/type.rb +57 -0
- data/lib/jsduck/doc/comment.rb +40 -0
- data/lib/jsduck/doc/delimited_parser.rb +105 -0
- data/lib/jsduck/doc/map.rb +23 -0
- data/lib/jsduck/doc/parser.rb +135 -0
- data/lib/jsduck/doc/processor.rb +52 -0
- data/lib/jsduck/doc/scanner.rb +83 -0
- data/lib/jsduck/doc/standard_tag_parser.rb +125 -0
- data/lib/jsduck/doc/subproperties.rb +71 -0
- data/lib/jsduck/examples.rb +63 -0
- data/lib/jsduck/export_writer.rb +63 -0
- data/lib/jsduck/exporter/app.rb +80 -0
- data/lib/jsduck/exporter/examples.rb +58 -0
- data/lib/jsduck/exporter/full.rb +60 -0
- data/lib/jsduck/external_classes.rb +362 -0
- data/lib/jsduck/format/batch.rb +58 -0
- data/lib/jsduck/format/class.rb +62 -0
- data/lib/jsduck/format/doc.rb +172 -0
- data/lib/jsduck/format/html_stack.rb +108 -0
- data/lib/jsduck/format/shortener.rb +55 -0
- data/lib/jsduck/format/subproperties.rb +64 -0
- data/lib/jsduck/grouped_asset.rb +59 -0
- data/lib/jsduck/guide_anchors.rb +39 -0
- data/lib/jsduck/guide_toc.rb +68 -0
- data/lib/jsduck/guide_toc_entry.rb +54 -0
- data/lib/jsduck/guide_writer.rb +58 -0
- data/lib/jsduck/guides.rb +188 -0
- data/lib/jsduck/img/dir.rb +94 -0
- data/lib/jsduck/img/dir_set.rb +39 -0
- data/lib/jsduck/img/writer.rb +23 -0
- data/lib/jsduck/inline/auto_link.rb +106 -0
- data/lib/jsduck/inline/example.rb +44 -0
- data/lib/jsduck/inline/img.rb +63 -0
- data/lib/jsduck/inline/link.rb +100 -0
- data/lib/jsduck/inline/link_renderer.rb +70 -0
- data/lib/jsduck/inline/video.rb +61 -0
- data/lib/jsduck/inline_examples.rb +94 -0
- data/lib/jsduck/js/associator.rb +224 -0
- data/lib/jsduck/js/ast.rb +69 -0
- data/lib/jsduck/js/class.rb +248 -0
- data/lib/jsduck/js/evaluator.rb +70 -0
- data/lib/jsduck/js/event.rb +34 -0
- data/lib/jsduck/js/ext_define.rb +46 -0
- data/lib/jsduck/js/ext_patterns.rb +75 -0
- data/lib/jsduck/js/fires.rb +42 -0
- data/lib/jsduck/js/listener.rb +35 -0
- data/lib/jsduck/js/method.rb +99 -0
- data/lib/jsduck/js/method_calls.rb +40 -0
- data/lib/jsduck/js/node.rb +267 -0
- data/lib/jsduck/js/node_array.rb +36 -0
- data/lib/jsduck/js/parser.rb +44 -0
- data/lib/jsduck/js/property.rb +81 -0
- data/lib/jsduck/js/returns.rb +211 -0
- data/lib/jsduck/js/rkelly_adapter.rb +587 -0
- data/lib/jsduck/js/scoped_traverser.rb +42 -0
- data/lib/jsduck/js/serializer.rb +263 -0
- data/lib/jsduck/js/utils.rb +21 -0
- data/lib/jsduck/logger.rb +186 -0
- data/lib/jsduck/member_registry.rb +41 -0
- data/lib/jsduck/members_index.rb +141 -0
- data/lib/jsduck/merger.rb +83 -0
- data/lib/jsduck/news.rb +149 -0
- data/lib/jsduck/options/config.rb +35 -0
- data/lib/jsduck/options/helpful_parser.rb +111 -0
- data/lib/jsduck/options/input_files.rb +60 -0
- data/lib/jsduck/options/jsb.rb +25 -0
- data/lib/jsduck/options/parser.rb +968 -0
- data/lib/jsduck/options/processor.rb +47 -0
- data/lib/jsduck/options/record.rb +51 -0
- data/lib/jsduck/output_dir.rb +29 -0
- data/lib/jsduck/params_merger.rb +47 -0
- data/lib/jsduck/parser.rb +76 -0
- data/lib/jsduck/process/accessors.rb +152 -0
- data/lib/jsduck/process/circular_deps.rb +58 -0
- data/lib/jsduck/process/components.rb +19 -0
- data/lib/jsduck/process/enums.rb +90 -0
- data/lib/jsduck/process/ext4_events.rb +46 -0
- data/lib/jsduck/process/fires.rb +71 -0
- data/lib/jsduck/process/global_members.rb +35 -0
- data/lib/jsduck/process/ignored_classes.rb +16 -0
- data/lib/jsduck/process/importer.rb +75 -0
- data/lib/jsduck/process/inherit_class.rb +58 -0
- data/lib/jsduck/process/inherit_doc.rb +32 -0
- data/lib/jsduck/process/inherit_members.rb +259 -0
- data/lib/jsduck/process/lint.rb +118 -0
- data/lib/jsduck/process/no_doc.rb +50 -0
- data/lib/jsduck/process/overrides.rb +99 -0
- data/lib/jsduck/process/return_values.rb +72 -0
- data/lib/jsduck/process/versions.rb +137 -0
- data/lib/jsduck/relations.rb +95 -0
- data/lib/jsduck/render/class.rb +152 -0
- data/lib/jsduck/render/sidebar.rb +97 -0
- data/lib/jsduck/render/signature_util.rb +14 -0
- data/lib/jsduck/render/subproperties.rb +117 -0
- data/lib/jsduck/render/tags.rb +50 -0
- data/lib/jsduck/source/file.rb +89 -0
- data/lib/jsduck/tag/abstract.rb +11 -0
- data/lib/jsduck/tag/accessor.rb +10 -0
- data/lib/jsduck/tag/alias.rb +42 -0
- data/lib/jsduck/tag/alternate_class_names.rb +13 -0
- data/lib/jsduck/tag/aside.rb +71 -0
- data/lib/jsduck/tag/author.rb +30 -0
- data/lib/jsduck/tag/boolean_tag.rb +24 -0
- data/lib/jsduck/tag/cfg.rb +79 -0
- data/lib/jsduck/tag/chainable.rb +12 -0
- data/lib/jsduck/tag/class.rb +77 -0
- data/lib/jsduck/tag/class_list_tag.rb +40 -0
- data/lib/jsduck/tag/component.rb +19 -0
- data/lib/jsduck/tag/constructor.rb +24 -0
- data/lib/jsduck/tag/css_mixin.rb +31 -0
- data/lib/jsduck/tag/css_var.rb +50 -0
- data/lib/jsduck/tag/default.rb +25 -0
- data/lib/jsduck/tag/deprecated.rb +23 -0
- data/lib/jsduck/tag/deprecated_tag.rb +60 -0
- data/lib/jsduck/tag/doc.rb +32 -0
- data/lib/jsduck/tag/docauthor.rb +12 -0
- data/lib/jsduck/tag/enum.rb +67 -0
- data/lib/jsduck/tag/event.rb +36 -0
- data/lib/jsduck/tag/evented.rb +10 -0
- data/lib/jsduck/tag/experimental.rb +28 -0
- data/lib/jsduck/tag/extends.rb +39 -0
- data/lib/jsduck/tag/fires.rb +55 -0
- data/lib/jsduck/tag/ftype.rb +19 -0
- data/lib/jsduck/tag/hide.rb +11 -0
- data/lib/jsduck/tag/icons/cfg.png +0 -0
- data/lib/jsduck/tag/icons/class-large.png +0 -0
- data/lib/jsduck/tag/icons/class-redirect.png +0 -0
- data/lib/jsduck/tag/icons/class.png +0 -0
- data/lib/jsduck/tag/icons/component-large.png +0 -0
- data/lib/jsduck/tag/icons/component-redirect.png +0 -0
- data/lib/jsduck/tag/icons/component.png +0 -0
- data/lib/jsduck/tag/icons/css_mixin.png +0 -0
- data/lib/jsduck/tag/icons/css_var.png +0 -0
- data/lib/jsduck/tag/icons/event.png +0 -0
- data/lib/jsduck/tag/icons/listener.png +0 -0
- data/lib/jsduck/tag/icons/method.png +0 -0
- data/lib/jsduck/tag/icons/property.png +0 -0
- data/lib/jsduck/tag/icons/singleton-large.png +0 -0
- data/lib/jsduck/tag/icons/singleton-redirect.png +0 -0
- data/lib/jsduck/tag/icons/singleton.png +0 -0
- data/lib/jsduck/tag/ignore.rb +12 -0
- data/lib/jsduck/tag/inheritable.rb +10 -0
- data/lib/jsduck/tag/inheritdoc.rb +48 -0
- data/lib/jsduck/tag/listener.rb +36 -0
- data/lib/jsduck/tag/localdoc.rb +33 -0
- data/lib/jsduck/tag/markdown.rb +14 -0
- data/lib/jsduck/tag/member.rb +24 -0
- data/lib/jsduck/tag/member_tag.rb +131 -0
- data/lib/jsduck/tag/method.rb +75 -0
- data/lib/jsduck/tag/mixins.rb +27 -0
- data/lib/jsduck/tag/new.rb +32 -0
- data/lib/jsduck/tag/override.rb +37 -0
- data/lib/jsduck/tag/overrides.rb +29 -0
- data/lib/jsduck/tag/param.rb +46 -0
- data/lib/jsduck/tag/preventable.rb +37 -0
- data/lib/jsduck/tag/private.rb +35 -0
- data/lib/jsduck/tag/property.rb +67 -0
- data/lib/jsduck/tag/protected.rb +12 -0
- data/lib/jsduck/tag/ptype.rb +19 -0
- data/lib/jsduck/tag/readonly.rb +11 -0
- data/lib/jsduck/tag/removed.rb +32 -0
- data/lib/jsduck/tag/required.rb +23 -0
- data/lib/jsduck/tag/requires.rb +13 -0
- data/lib/jsduck/tag/return.rb +48 -0
- data/lib/jsduck/tag/since.rb +30 -0
- data/lib/jsduck/tag/singleton.rb +28 -0
- data/lib/jsduck/tag/static.rb +12 -0
- data/lib/jsduck/tag/subproperties.rb +23 -0
- data/lib/jsduck/tag/tag.rb +164 -0
- data/lib/jsduck/tag/template.rb +29 -0
- data/lib/jsduck/tag/throws.rb +39 -0
- data/lib/jsduck/tag/type.rb +38 -0
- data/lib/jsduck/tag/uses.rb +13 -0
- data/lib/jsduck/tag/xtype.rb +31 -0
- data/lib/jsduck/tag_loader.rb +50 -0
- data/lib/jsduck/tag_registry.rb +95 -0
- data/lib/jsduck/type_parser.rb +388 -0
- data/lib/jsduck/util/html.rb +27 -0
- data/lib/jsduck/util/io.rb +49 -0
- data/lib/jsduck/util/json.rb +60 -0
- data/lib/jsduck/util/md5.rb +32 -0
- data/lib/jsduck/util/null_object.rb +36 -0
- data/lib/jsduck/util/os.rb +14 -0
- data/lib/jsduck/util/parallel.rb +38 -0
- data/lib/jsduck/util/singleton.rb +35 -0
- data/lib/jsduck/util/stdout.rb +33 -0
- data/lib/jsduck/version.rb +5 -0
- data/lib/jsduck/videos.rb +40 -0
- data/lib/jsduck/warning/all.rb +36 -0
- data/lib/jsduck/warning/basic.rb +57 -0
- data/lib/jsduck/warning/deprecated.rb +40 -0
- data/lib/jsduck/warning/nodoc.rb +79 -0
- data/lib/jsduck/warning/parser.rb +168 -0
- data/lib/jsduck/warning/registry.rb +108 -0
- data/lib/jsduck/warning/tag.rb +57 -0
- data/lib/jsduck/warning/warn_exception.rb +10 -0
- data/lib/jsduck/web/class_icons.rb +76 -0
- data/lib/jsduck/web/css.rb +40 -0
- data/lib/jsduck/web/data.rb +52 -0
- data/lib/jsduck/web/index_html.rb +105 -0
- data/lib/jsduck/web/member_icons.rb +43 -0
- data/lib/jsduck/web/search.rb +153 -0
- data/lib/jsduck/web/source.rb +89 -0
- data/lib/jsduck/web/template.rb +51 -0
- data/lib/jsduck/web/tree.rb +22 -0
- data/lib/jsduck/web/writer.rb +100 -0
- data/lib/jsduck/welcome.rb +31 -0
- data/template-min/README.md +14 -0
- data/template-min/app-0f524ddd276c4019a11a6128932a9c96.js +1 -0
- data/template-min/eg-iframe.html +26 -0
- data/template-min/extjs/ext-all.js +38 -0
- data/template-min/extjs/resources/themes/images/default/boundlist/trigger-arrow.png +0 -0
- data/template-min/extjs/resources/themes/images/default/box/corners-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/l-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/l.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/r-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/r.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/tb-blue.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/box/tb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-notitle-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn-group/btn-group-default-framed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-large-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-medium-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-small-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-large-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-medium-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-focus-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-pressed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/btn/btn-default-toolbar-small-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/arrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/group-cs.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/group-lr.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/group-tb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-b-noline.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-b.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-bo.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-light.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-noline.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow-o.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/button/s-arrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-footer-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/datepicker/datepicker-header-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/dd/drop-add.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/dd/drop-no.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/dd/drop-yes.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/editor/tb-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-default-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form-invalid-tip/form-invalid-tip-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/checkbox.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/clear-trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/date-trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/error-tip-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/exclamation.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/radio.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/search-trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/spinner-small.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/spinner.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/text-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/trigger-square.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/trigger-tpl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/form/trigger.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/arrow-left-white.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/arrow-right-white.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-selected-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/cell-special-selected-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/checked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/col-move-bottom.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/col-move-top.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/column-header-over-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/columns.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-left.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dd-insert-arrow-right.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/dirty.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/done.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/drop-no.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/drop-yes.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/footer-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-blue-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-blue-split.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-hrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-split.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid-vista-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-hd-btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-hrow-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-hrow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/grid3-rowheader.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-by.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-collapse.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-expand-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/group-expand.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hd-pop.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-asc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-desc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-lock.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-lock.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-unlock.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/hmenu-unlock.png +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/invalid_line.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/mso-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/nowait.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-first-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-first.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-last-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-last.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-next-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-next.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-prev-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/page-prev.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/pick-button.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/property-cell-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/property-cell-selected-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/refresh-disabled.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/refresh.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-check-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-expand-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/row-sel.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/sort-hd.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/sort_asc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/sort_desc.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/unchecked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/grid/wait.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-bottom.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/layout/mini-top.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/checked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/group-checked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/item-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-item-active-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-item-active-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-item-active-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu-parent.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/menu.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/menu/unchecked.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-collapsed-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-framed-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-left-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-right-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel-header/panel-header-default-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel/panel-default-framed-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/panel/panel-default-framed-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/progress/progress-default-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/blue-loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/calendar.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/glass-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/hd-sprite.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-error.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-info.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-question.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/icon-warning.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/large-loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/left-btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/loading-balls.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/right-btn.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/shadow-c.png +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/shadow-lr.png +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/shadow.png +0 -0
- data/template-min/extjs/resources/themes/images/default/shared/warning.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/e-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/e-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/ne-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/ne-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/nw-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/nw-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/s-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/s-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/se-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/se-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/square.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/sw-handle-dark.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/sizer/sw-handle.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-thumb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-thumb.png +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-bg.png +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-thumb.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/slider/slider-v-thumb.png +0 -0
- data/template-min/extjs/resources/themes/images/default/tab-bar/scroll-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab-bar/scroll-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab-bar/tab-bar-default-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-active-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-active-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-active-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-close.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-active-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-active-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-active-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-disabled-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-disabled-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-disabled-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-over-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-over-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-over-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tab/tab-default-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tip/tip-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tip/tip-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/more.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/scroll-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/scroll-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/toolbar/toolbar-default-bg.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tools/tool-sprite-tpl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tools/tool-sprites.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tools/tools-sprites-trans.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/arrows.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-above.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-add.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-append.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-below.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-between.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-no.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-over.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-under.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/drop-yes.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-minus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-minus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-plus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end-plus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-end.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-line.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-minus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-minus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-plus-nl.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow-plus.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/elbow.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/folder-open.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/folder.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/leaf.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/loading.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/tree/s.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-bottom.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-left.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-right.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/util/splitter/mini-top.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-bottom-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-collapsed-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-left-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-left-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-right-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-right-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-top-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window-header/window-header-default-top-sides.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window/window-default-corners.gif +0 -0
- data/template-min/extjs/resources/themes/images/default/window/window-default-sides.gif +0 -0
- data/template-min/favicon.ico +0 -0
- data/template-min/index-template.html +35 -0
- data/template-min/index.php +95 -0
- data/template-min/mobile-redirect.js +1 -0
- data/template-min/print-template.html +52 -0
- data/template-min/resources/css/app-de670120f43fdad3091a0cc2c10daadb.css +1 -0
- data/template-min/resources/images/ajax-loader.gif +0 -0
- data/template-min/resources/images/arrows.png +0 -0
- data/template-min/resources/images/comment-bubble.png +0 -0
- data/template-min/resources/images/comment.png +0 -0
- data/template-min/resources/images/default-guide.png +0 -0
- data/template-min/resources/images/doc-m.png +0 -0
- data/template-min/resources/images/down-arr.png +0 -0
- data/template-min/resources/images/elbow-end.gif +0 -0
- data/template-min/resources/images/example-icons.png +0 -0
- data/template-min/resources/images/expandcollapse.png +0 -0
- data/template-min/resources/images/group-expand-sprite.gif +0 -0
- data/template-min/resources/images/header.png +0 -0
- data/template-min/resources/images/hero-extjs4-alt.png +0 -0
- data/template-min/resources/images/icons.png +0 -0
- data/template-min/resources/images/icons.xcf +0 -0
- data/template-min/resources/images/link-green-standard-over.png +0 -0
- data/template-min/resources/images/link-green-standard.png +0 -0
- data/template-min/resources/images/loading.gif +0 -0
- data/template-min/resources/images/logo-screen-noglow.png +0 -0
- data/template-min/resources/images/logo.png +0 -0
- data/template-min/resources/images/member-collapsed.gif +0 -0
- data/template-min/resources/images/member-expanded.gif +0 -0
- data/template-min/resources/images/member-hover.gif +0 -0
- data/template-min/resources/images/more.png +0 -0
- data/template-min/resources/images/phone-l.jpg +0 -0
- data/template-min/resources/images/phone-p.jpg +0 -0
- data/template-min/resources/images/phone-small-l.jpg +0 -0
- data/template-min/resources/images/phone-small-p.jpg +0 -0
- data/template-min/resources/images/print.png +0 -0
- data/template-min/resources/images/sample-over.gif +0 -0
- data/template-min/resources/images/search-box.png +0 -0
- data/template-min/resources/images/tablet-l.jpg +0 -0
- data/template-min/resources/images/tablet-p.jpg +0 -0
- data/template-min/resources/images/tabs.png +0 -0
- data/template-min/resources/images/text-bg.gif +0 -0
- data/template-min/resources/images/vote-arrows.png +0 -0
- data/template-min/resources/images/welcome-bg-js4.gif +0 -0
- data/template-min/resources/images/x.png +0 -0
- data/template-min/resources/images/x12.png +0 -0
- data/template-min/resources/prettify/prettify.css +1 -0
- data/template-min/resources/prettify/prettify.js +30 -0
- data/template-min/template.html +44 -0
- metadata +828 -0
@@ -0,0 +1,415 @@
|
|
1
|
+
/**
|
2
|
+
* @class RegExp
|
3
|
+
*
|
4
|
+
* Creates a regular expression object for matching text according to a pattern.
|
5
|
+
*
|
6
|
+
* When using the constructor function, the normal string escape rules (preceding
|
7
|
+
* special characters with \ when included in a string) are necessary. For
|
8
|
+
* example, the following are equivalent:
|
9
|
+
*
|
10
|
+
* var re = new RegExp("\\w+");
|
11
|
+
* var re = /\w+/;
|
12
|
+
*
|
13
|
+
* Notice that the parameters to the literal format do not use quotation marks to
|
14
|
+
* indicate strings, while the parameters to the constructor function do use
|
15
|
+
* quotation marks. So the following expressions create the same regular
|
16
|
+
* expression:
|
17
|
+
*
|
18
|
+
* /ab+c/i;
|
19
|
+
* new RegExp("ab+c", "i");
|
20
|
+
*
|
21
|
+
* # Special characters in regular expressions
|
22
|
+
*
|
23
|
+
* | Character | Meaning
|
24
|
+
* |:-----------------|:--------------------------------------------------------------------------------------
|
25
|
+
* | `\` | For characters that are usually treated literally, indicates that the next character
|
26
|
+
* | | is special and not to be interpreted literally.
|
27
|
+
* | | For example, `/b/` matches the character 'b'. By placing a backslash in front of b, that
|
28
|
+
* | | is by using `/\b/`, the character becomes special to mean match a word boundary.
|
29
|
+
* | |
|
30
|
+
* | | _or_
|
31
|
+
* | |
|
32
|
+
* | | For characters that are usually treated specially, indicates that the next character is
|
33
|
+
* | | not special and should be interpreted literally.
|
34
|
+
* | |
|
35
|
+
* | | For example, `*` is a special character that means 0 or more occurrences of the preceding
|
36
|
+
* | | character should be matched; for example, `/a*\/` means match 0 or more "a"s. To match *
|
37
|
+
* | | literally, precede it with a backslash; for example, `/a\*\/` matches 'a*'.
|
38
|
+
* | |
|
39
|
+
* | `^` | Matches beginning of input. If the multiline flag is set to true, also matches
|
40
|
+
* | | immediately after a line break character.
|
41
|
+
* | |
|
42
|
+
* | | For example, `/^A/` does not match the 'A' in "an A", but does match the first 'A' in
|
43
|
+
* | | "An A".
|
44
|
+
* | |
|
45
|
+
* | `$` | Matches end of input. If the multiline flag is set to true, also matches immediately
|
46
|
+
* | | before a line break character.
|
47
|
+
* | |
|
48
|
+
* | | For example, `/t$/` does not match the 't' in "eater", but does match it in "eat".
|
49
|
+
* | |
|
50
|
+
* | `*` | Matches the preceding item 0 or more times.
|
51
|
+
* | |
|
52
|
+
* | | For example, `/bo*\/` matches 'boooo' in "A ghost booooed" and 'b' in "A bird warbled",
|
53
|
+
* | | but nothing in "A goat grunted".
|
54
|
+
* | |
|
55
|
+
* | `+` | Matches the preceding item 1 or more times. Equivalent to `{1,}`.
|
56
|
+
* | |
|
57
|
+
* | | For example, `/a+/` matches the 'a' in "candy" and all the a's in "caaaaaaandy".
|
58
|
+
* | |
|
59
|
+
* | `?` | Matches the preceding item 0 or 1 time.
|
60
|
+
* | |
|
61
|
+
* | | For example, `/e?le?/` matches the 'el' in "angel" and the 'le' in "angle."
|
62
|
+
* | |
|
63
|
+
* | | If used immediately after any of the quantifiers `*`, `+`, `?`, or `{}`, makes the quantifier
|
64
|
+
* | | non-greedy (matching the minimum number of times), as opposed to the default, which is
|
65
|
+
* | | greedy (matching the maximum number of times).
|
66
|
+
* | |
|
67
|
+
* | | Also used in lookahead assertions, described under `(?=)`, `(?!)`, and `(?:)` in this table.
|
68
|
+
* | |
|
69
|
+
* | `.` | (The decimal point) matches any single character except the newline characters: \n \r
|
70
|
+
* | | \u2028 or \u2029. (`[\s\S]` can be used to match any character including new lines.)
|
71
|
+
* | |
|
72
|
+
* | | For example, `/.n/` matches 'an' and 'on' in "nay, an apple is on the tree", but not 'nay'.
|
73
|
+
* | |
|
74
|
+
* | `(x)` | Matches `x` and remembers the match. These are called capturing parentheses.
|
75
|
+
* | |
|
76
|
+
* | | For example, `/(foo)/` matches and remembers 'foo' in "foo bar." The matched substring can
|
77
|
+
* | | be recalled from the resulting array's elements `[1], ..., [n]` or from the predefined RegExp
|
78
|
+
* | | object's properties `$1, ..., $9`.
|
79
|
+
* | |
|
80
|
+
* | `(?:x)` | Matches `x` but does not remember the match. These are called non-capturing parentheses.
|
81
|
+
* | | The matched substring can not be recalled from the resulting array's elements `[1], ..., [n]`
|
82
|
+
* | | or from the predefined RegExp object's properties `$1, ..., $9`.
|
83
|
+
* | |
|
84
|
+
* | `x(?=y)` | Matches `x` only if `x` is followed by `y`. For example, `/Jack(?=Sprat)/` matches 'Jack' only if
|
85
|
+
* | | it is followed by 'Sprat'. `/Jack(?=Sprat|Frost)/` matches 'Jack' only if it is followed by
|
86
|
+
* | | 'Sprat' or 'Frost'. However, neither 'Sprat' nor 'Frost' is part of the match results.
|
87
|
+
* | |
|
88
|
+
* | `x(?!y)` | Matches `x` only if `x` is not followed by `y`. For example, `/\d+(?!\.)/` matches a number only
|
89
|
+
* | | if it is not followed by a decimal point.
|
90
|
+
* | |
|
91
|
+
* | | `/\d+(?!\.)/.exec("3.141")` matches 141 but not 3.141.
|
92
|
+
* | |
|
93
|
+
* |<code>x|y</code>| Matches either `x` or `y`.
|
94
|
+
* | |
|
95
|
+
* | | For example, `/green|red/` matches 'green' in "green apple" and 'red' in "red apple."
|
96
|
+
* | |
|
97
|
+
* | `{n}` | Where `n` is a positive integer. Matches exactly n occurrences of the preceding item.
|
98
|
+
* | |
|
99
|
+
* | | For example, `/a{2}/` doesn't match the 'a' in "candy," but it matches all of the a's
|
100
|
+
* | | in "caandy," and the first two a's in "caaandy."
|
101
|
+
* | |
|
102
|
+
* | `{n,}` | Where `n` is a positive integer. Matches at least n occurrences of the preceding item.
|
103
|
+
* | |
|
104
|
+
* | | For example, `/a{2,}/` doesn't match the 'a' in "candy", but matches all of the a's in
|
105
|
+
* | | "caandy" and in "caaaaaaandy."
|
106
|
+
* | |
|
107
|
+
* | `{n,m}` | Where `n` and `m` are positive integers. Matches at least `n` and at most `m` occurrences of the
|
108
|
+
* | | preceding item.
|
109
|
+
* | |
|
110
|
+
* | | For example, `/a{1,3}/` matches nothing in "cndy", the 'a' in "candy," the first two a's
|
111
|
+
* | | in "caandy," and the first three a's in "caaaaaaandy". Notice that when matching
|
112
|
+
* | | "caaaaaaandy", the match is "aaa", even though the original string had more a's in it.
|
113
|
+
* | |
|
114
|
+
* | `[xyz]` | A character set. Matches any one of the enclosed characters. You can specify a range of
|
115
|
+
* | | characters by using a hyphen.
|
116
|
+
* | |
|
117
|
+
* | | For example, `[abcd]` is the same as `[a-d]`. They match the 'b' in "brisket" and the 'c'
|
118
|
+
* | | in "chop".
|
119
|
+
* | |
|
120
|
+
* | `[^xyz]` | A negated or complemented character set. That is, it matches anything that is not
|
121
|
+
* | | enclosed in the brackets. You can specify a range of characters by using a hyphen.
|
122
|
+
* | |
|
123
|
+
* | | For example, `[^abc]` is the same as `[^a-c]`. They initially match 'r' in "brisket" and
|
124
|
+
* | | 'h' in "chop."
|
125
|
+
* | |
|
126
|
+
* | `[\b]` | Matches a backspace. (Not to be confused with `\b`.)
|
127
|
+
* | |
|
128
|
+
* | `\b` | Matches a word boundary, such as a space. (Not to be confused with `[\b]`.)
|
129
|
+
* | |
|
130
|
+
* | | For example, `/\bn\w/` matches the 'no' in "noonday"; `/\wy\b/` matches the 'ly' in
|
131
|
+
* | | "possibly yesterday."
|
132
|
+
* | |
|
133
|
+
* | `\B` | Matches a non-word boundary.
|
134
|
+
* | |
|
135
|
+
* | | For example, `/\w\Bn/` matches 'on' in "noonday", and `/y\B\w/` matches 'ye' in "possibly
|
136
|
+
* | | yesterday."
|
137
|
+
* | |
|
138
|
+
* | `\cX` | Where X is a letter from A - Z. Matches a control character in a string.
|
139
|
+
* | |
|
140
|
+
* | | For example, `/\cM/` matches control-M in a string.
|
141
|
+
* | |
|
142
|
+
* | `\d` | Matches a digit character in the basic Latin alphabet. Equivalent to `[0-9]`.
|
143
|
+
* | |
|
144
|
+
* | | For example, `/\d/` or `/[0-9]/` matches '2' in "B2 is the suite number."
|
145
|
+
* | |
|
146
|
+
* | `\D` | Matches any non-digit character in the basic Latin alphabet. Equivalent to `[^0-9]`.
|
147
|
+
* | |
|
148
|
+
* | | For example, `/\D/` or `/[^0-9]/` matches 'B' in "B2 is the suite number.
|
149
|
+
* | |
|
150
|
+
* | `\f` | Matches a form-feed.
|
151
|
+
* | |
|
152
|
+
* | `\n` | Matches a linefeed.
|
153
|
+
* | |
|
154
|
+
* | `\r` | Matches a carriage return.
|
155
|
+
* | |
|
156
|
+
* | `\s` | Matches a single white space character, including space, tab, form feed, line feed and
|
157
|
+
* | | other unicode spaces. Equivalent to:
|
158
|
+
* | |
|
159
|
+
* | | `[\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]`
|
160
|
+
* | |
|
161
|
+
* | | For example, `/\s\w*\/` matches ' bar' in "foo bar."
|
162
|
+
* | |
|
163
|
+
* | `\S` | Matches a single character other than white space. Equivalent to:
|
164
|
+
* | |
|
165
|
+
* | | `[^\t\n\v\f\r \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]`
|
166
|
+
* | |
|
167
|
+
* | | For example, `/\S\w*\/` matches 'foo' in "foo bar."
|
168
|
+
* | |
|
169
|
+
* | `\t` | Matches a tab.
|
170
|
+
* | |
|
171
|
+
* | `\v` | Matches a vertical tab.
|
172
|
+
* | |
|
173
|
+
* | `\w` | Matches any alphanumeric character from the basic Latin alphabet, including the
|
174
|
+
* | | underscore. Equivalent to `[A-Za-z0-9_]`.
|
175
|
+
* | |
|
176
|
+
* | | For example, `/\w/` matches 'a' in "apple," '5' in "$5.28," and '3' in "3D."
|
177
|
+
* | |
|
178
|
+
* | `\W` | Matches any character that is not a word character from the basic Latin alphabet. Equivalent
|
179
|
+
* | | to `[^A-Za-z0-9_]`.
|
180
|
+
* | |
|
181
|
+
* | | For example, `/\W/` or `/[^A-Za-z0-9_]/` matches '%' in "50%."
|
182
|
+
* | |
|
183
|
+
* | `\n` | Where `n` is a positive integer. A back reference to the last substring matching the n
|
184
|
+
* | | parenthetical in the regular expression (counting left parentheses).
|
185
|
+
* | |
|
186
|
+
* | | For example, `/apple(,)\sorange\1/` matches 'apple, orange,' in "apple, orange, cherry,
|
187
|
+
* | | peach." A more complete example follows this table.
|
188
|
+
* | |
|
189
|
+
* | `\0` | Matches a NULL character. Do not follow this with another digit.
|
190
|
+
* | |
|
191
|
+
* | `\xhh` | Matches the character with the code `hh` (two hexadecimal digits)
|
192
|
+
* | |
|
193
|
+
* | `\uhhhh` | Matches the character with the Unicode value `hhhh` (four hexadecimal digits)
|
194
|
+
*
|
195
|
+
* The literal notation provides compilation of the regular expression when the expression is evaluated. Use
|
196
|
+
* literal notation when the regular expression will remain constant. For example, if you use literal notation
|
197
|
+
* to construct a regular expression used in a loop, the regular expression won't be recompiled on each iteration.
|
198
|
+
*
|
199
|
+
* The constructor of the regular expression object, for example, new RegExp("ab+c"), provides runtime
|
200
|
+
* compilation of the regular expression. Use the constructor function when you know the regular expression
|
201
|
+
* pattern will be changing, or you don't know the pattern and are getting it from another source, such as user input.
|
202
|
+
*
|
203
|
+
* <div class="notice">
|
204
|
+
* Documentation for this class comes from <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp">MDN</a>
|
205
|
+
* and is available under <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons: Attribution-Sharealike license</a>.
|
206
|
+
* </div>
|
207
|
+
*/
|
208
|
+
|
209
|
+
/**
|
210
|
+
* @method constructor
|
211
|
+
* Creates new regular expression object.
|
212
|
+
*
|
213
|
+
* @param {String} pattern
|
214
|
+
* The text of the regular expression.
|
215
|
+
* @param {String} flags
|
216
|
+
* If specified, flags can have any combination of the following values:
|
217
|
+
*
|
218
|
+
* - "g" - global match
|
219
|
+
* - "i" - ignore case
|
220
|
+
* - "m" - Treat beginning and end characters (^ and $) as working over multiple lines
|
221
|
+
* (i.e., match the beginning or end of _each_ line (delimited by \n or \r), not
|
222
|
+
* only the very beginning or end of the whole input string)
|
223
|
+
*/
|
224
|
+
|
225
|
+
//Methods
|
226
|
+
|
227
|
+
/**
|
228
|
+
* @method exec
|
229
|
+
* Executes a search for a match in its string parameter.
|
230
|
+
*
|
231
|
+
* If the match succeeds, the `exec` method returns an array and updates properties of the regular
|
232
|
+
* expression object. The returned array has the matched text as the first item, and then one item for
|
233
|
+
* each capturing parenthesis that matched containing the text that was captured. If the match fails,
|
234
|
+
* the `exec` method returns `null`.
|
235
|
+
*
|
236
|
+
* If you are executing a match simply to find true or false, use the `test` method or the `String
|
237
|
+
* search` method.
|
238
|
+
*
|
239
|
+
* Consider the following example:
|
240
|
+
*
|
241
|
+
* // Match one d followed by one or more b's followed by one d
|
242
|
+
* // Remember matched b's and the following d
|
243
|
+
* // Ignore case
|
244
|
+
* var re = /d(b+)(d)/ig;
|
245
|
+
* var result = re.exec("cdbBdbsbz");
|
246
|
+
*
|
247
|
+
* The following table shows the results for this script:
|
248
|
+
*
|
249
|
+
* | Object | Property/Index | Description | Example
|
250
|
+
* |:-----------------|:---------------|:---------------------------------------------------------------------|:---------------------
|
251
|
+
* | `result` | | The content of myArray. | `["dbBd", "bB", "d"]`
|
252
|
+
* | | `index` | The 0-based index of the match in the string | `1`
|
253
|
+
* | | `input` | The original string. | `cdbDdbsbz`
|
254
|
+
* | | `[0]` | The last matched characters. | `dbBd`
|
255
|
+
* | | `[1], ...[n]` | The parenthesized substring matches, if any. The number of possible | `[1] = bB`
|
256
|
+
* | | | parenthesized substrings is unlimited. | `[2] = d`
|
257
|
+
* | `re` | `lastIndex` | The index at which to start the next match. | `5`
|
258
|
+
* | | `ignoreCase` | Indicates the "`i`" flag was used to ignore case. | `true`
|
259
|
+
* | | `global` | Indicates the "`g`" flag was used for a global match. | `true`
|
260
|
+
* | | `multiline` | Indicates the "`m`" flag was used to search in strings across | `false`
|
261
|
+
* | | | multiple lines. |
|
262
|
+
* | | `source` | The text of the pattern. | d(b+)(d)
|
263
|
+
*
|
264
|
+
* If your regular expression uses the "`g`" flag, you can use the `exec` method multiple times to find
|
265
|
+
* successive matches in the same string. When you do so, the search starts at the substring of `str`
|
266
|
+
* specified by the regular expression's `lastIndex` property (`test` will also advance the `lastIndex`
|
267
|
+
* property). For example, assume you have this script:
|
268
|
+
*
|
269
|
+
* var myRe = /ab*\/g;
|
270
|
+
* var str = "abbcdefabh";
|
271
|
+
* var myArray;
|
272
|
+
* while ((myArray = myRe.exec(str)) != null)
|
273
|
+
* {
|
274
|
+
* var msg = "Found " + myArray[0] + ". ";
|
275
|
+
* msg += "Next match starts at " + myRe.lastIndex;
|
276
|
+
* print(msg);
|
277
|
+
* }
|
278
|
+
*
|
279
|
+
* This script displays the following text:
|
280
|
+
*
|
281
|
+
* Found abb. Next match starts at 3
|
282
|
+
* Found ab. Next match starts at 9
|
283
|
+
*
|
284
|
+
* You can also use `exec()` without creating a RegExp object:
|
285
|
+
*
|
286
|
+
* var matches = /(hello \S+)/.exec('This is a hello world!');
|
287
|
+
* alert(matches[1]);
|
288
|
+
*
|
289
|
+
* This will display an alert containing 'hello world!';
|
290
|
+
*
|
291
|
+
* @param {String} str The string against which to match the regular expression.
|
292
|
+
* @return {Array} Array of results or `NULL`.
|
293
|
+
*/
|
294
|
+
|
295
|
+
/**
|
296
|
+
* @method test
|
297
|
+
* Tests for a match in its string parameter.
|
298
|
+
*
|
299
|
+
* When you want to know whether a pattern is found in a string use the test method (similar to the
|
300
|
+
* `String.search` method); for more information (but slower execution) use the exec method (similar to
|
301
|
+
* the `String.match` method). As with exec (or in combination with it), test called multiple times on
|
302
|
+
* the same global regular expression instance will advance past the previous match.
|
303
|
+
*
|
304
|
+
* The following example prints a message which depends on the success of the test:
|
305
|
+
*
|
306
|
+
* function testinput(re, str){
|
307
|
+
* if (re.test(str))
|
308
|
+
* midstring = " contains ";
|
309
|
+
* else
|
310
|
+
* midstring = " does not contain ";
|
311
|
+
* document.write (str + midstring + re.source);
|
312
|
+
* }
|
313
|
+
*
|
314
|
+
* @param {String} str The string against which to match the regular expression.
|
315
|
+
* @return {Boolean} true if string contains any matches, otherwise returns false.
|
316
|
+
*/
|
317
|
+
|
318
|
+
/**
|
319
|
+
* @method toString
|
320
|
+
* Returns a string representing the specified object. Overrides the `Object.prototype.toString`
|
321
|
+
* method.
|
322
|
+
*
|
323
|
+
* The RegExp object overrides the `toString` method of the `Object` object; it does not inherit
|
324
|
+
* `Object.toString`. For RegExp objects, the `toString` method returns a string representation of the
|
325
|
+
* regular expression.
|
326
|
+
*
|
327
|
+
* The following example displays the string value of a RegExp object:
|
328
|
+
*
|
329
|
+
* myExp = new RegExp("a+b+c");
|
330
|
+
* alert(myExp.toString()); // displays "/a+b+c/"
|
331
|
+
*
|
332
|
+
* @return {String} Regular expression as a string.
|
333
|
+
*/
|
334
|
+
|
335
|
+
//Properties
|
336
|
+
|
337
|
+
// Note that several of the RegExp properties have both long and short (Perl-like) names.
|
338
|
+
// Both names always refer to the same value. Perl is the programming language from which
|
339
|
+
// JavaScript modeled its regular expressions.
|
340
|
+
|
341
|
+
/**
|
342
|
+
* @property {Boolean} global
|
343
|
+
* Whether to test the regular expression against all possible matches in a
|
344
|
+
* string, or only against the first.
|
345
|
+
*
|
346
|
+
* `global` is a property of an individual regular expression object.
|
347
|
+
*
|
348
|
+
* The value of `global` is true if the "`g`" flag was used; otherwise, `false`. The "`g`" flag
|
349
|
+
* indicates that the regular expression should be tested against all possible matches in a string.
|
350
|
+
*
|
351
|
+
* You cannot change this property directly.
|
352
|
+
*/
|
353
|
+
|
354
|
+
/**
|
355
|
+
* @property {Boolean} ignoreCase
|
356
|
+
* Whether to ignore case while attempting a match in a string.
|
357
|
+
*
|
358
|
+
* `ignoreCase` is a property of an individual regular expression object.
|
359
|
+
*
|
360
|
+
* The value of `ignoreCase` is true if the "`i`" flag was used; otherwise, false. The "`i`" flag indicates
|
361
|
+
* that case should be ignored while attempting a match in a string.
|
362
|
+
*
|
363
|
+
* You cannot change this property directly.
|
364
|
+
*/
|
365
|
+
|
366
|
+
/**
|
367
|
+
* @property {Number} lastIndex
|
368
|
+
* The index at which to start the next match. A read/write integer property that specifies the index
|
369
|
+
* at which to start the next match.
|
370
|
+
*
|
371
|
+
* `lastIndex` is a property of an individual regular expression object.
|
372
|
+
*
|
373
|
+
* This property is set only if the regular expression used the "`g`" flag to indicate a global search.
|
374
|
+
* The following rules apply:
|
375
|
+
*
|
376
|
+
* - If `lastIndex` is greater than the length of the string, `regexp.test` and `regexp.exec` fail,
|
377
|
+
* and `lastIndex` is set to 0.
|
378
|
+
* - If `lastIndex` is equal to the length of the string and if the regular expression matches the
|
379
|
+
* empty string, then the regular expression matches input starting at `lastIndex`.
|
380
|
+
* - If `lastIndex` is equal to the length of the string and if the regular expression does not match
|
381
|
+
* the empty string, then the regular expression mismatches input, and `lastIndex` is reset to 0.
|
382
|
+
* - Otherwise, `lastIndex` is set to the next position following the most recent match.
|
383
|
+
*
|
384
|
+
* For example, consider the following sequence of statements:
|
385
|
+
*
|
386
|
+
* - `re = /(hi)?/g` Matches the empty string.
|
387
|
+
* - `re("hi")` Returns `["hi", "hi"]` with `lastIndex` equal to 2.
|
388
|
+
* - `re("hi")` Returns `[""]`, an empty array whose zeroth element is the match string. In this
|
389
|
+
* case, the empty string because `lastIndex` was 2 (and still is 2) and "`hi`" has length 2.
|
390
|
+
*/
|
391
|
+
|
392
|
+
/**
|
393
|
+
* @property {Boolean} multiline
|
394
|
+
* Whether or not to search in strings across multiple lines.
|
395
|
+
*
|
396
|
+
* `multiline` is a property of an individual regular expression object..
|
397
|
+
*
|
398
|
+
* The value of `multiline` is true if the "`m`" flag was used; otherwise, `false`. The "`m`" flag
|
399
|
+
* indicates that a multiline input string should be treated as multiple lines. For example, if "`m`"
|
400
|
+
* is used, "`^`" and "`$`" change from matching at only the start or end of the entire string to the
|
401
|
+
* start or end of any line within the string.
|
402
|
+
*
|
403
|
+
* You cannot change this property directly.
|
404
|
+
*/
|
405
|
+
|
406
|
+
/**
|
407
|
+
* @property {String} source
|
408
|
+
* The text of the pattern.
|
409
|
+
*
|
410
|
+
* A read-only property that contains the text of the pattern, excluding the forward slashes.
|
411
|
+
*
|
412
|
+
* `source` is a property of an individual regular expression object.
|
413
|
+
*
|
414
|
+
* You cannot change this property directly.
|
415
|
+
*/
|
@@ -0,0 +1,1052 @@
|
|
1
|
+
/**
|
2
|
+
* @class String
|
3
|
+
*
|
4
|
+
* `String` is a global object that may be used to construct String instances.
|
5
|
+
*
|
6
|
+
* String objects may be created by calling the constructor `new String()`. The `String` object wraps
|
7
|
+
* JavaScript's string primitive data type with the methods described below. The global function
|
8
|
+
* `String()` can also be called without new in front to create a primitive string. String literals in
|
9
|
+
* JavaScript are primitive strings.
|
10
|
+
*
|
11
|
+
* Because JavaScript automatically converts between string primitives and String objects, you can call
|
12
|
+
* any of the methods of the `String` object on a string primitive. JavaScript automatically converts the
|
13
|
+
* string primitive to a temporary `String` object, calls the method, then discards the temporary String
|
14
|
+
* object. For example, you can use the `String.length` property on a string primitive created from a
|
15
|
+
* string literal:
|
16
|
+
*
|
17
|
+
* s_obj = new String(s_prim = s_also_prim = "foo");
|
18
|
+
*
|
19
|
+
* s_obj.length; // 3
|
20
|
+
* s_prim.length; // 3
|
21
|
+
* s_also_prim.length; // 3
|
22
|
+
* 'foo'.length; // 3
|
23
|
+
* "foo".length; // 3
|
24
|
+
*
|
25
|
+
* (A string literal is denoted with single or double quotation marks.)
|
26
|
+
*
|
27
|
+
* String objects can be converted to primitive strings with the `valueOf` method.
|
28
|
+
*
|
29
|
+
* String primitives and String objects give different results when evaluated as JavaScript. Primitives
|
30
|
+
* are treated as source code; String objects are treated as a character sequence object. For example:
|
31
|
+
*
|
32
|
+
* s1 = "2 + 2"; // creates a string primitive
|
33
|
+
* s2 = new String("2 + 2"); // creates a String object
|
34
|
+
* eval(s1); // returns the number 4
|
35
|
+
* eval(s2); // returns the string "2 + 2"
|
36
|
+
* eval(s2.valueOf()); // returns the number 4
|
37
|
+
*
|
38
|
+
* # Character access
|
39
|
+
*
|
40
|
+
* There are two ways to access an individual character in a string. The first is the `charAt` method:
|
41
|
+
*
|
42
|
+
* return 'cat'.charAt(1); // returns "a"
|
43
|
+
*
|
44
|
+
* The other way is to treat the string as an array, where each index corresponds to an individual
|
45
|
+
* character:
|
46
|
+
*
|
47
|
+
* return 'cat'[1]; // returns "a"
|
48
|
+
*
|
49
|
+
* The second way (treating the string as an array) is not part of ECMAScript 3. It is a JavaScript and
|
50
|
+
* ECMAScript 5 feature.
|
51
|
+
*
|
52
|
+
* In both cases, attempting to set an individual character won't work. Trying to set a character
|
53
|
+
* through `charAt` results in an error, while trying to set a character via indexing does not throw an
|
54
|
+
* error, but the string itself is unchanged.
|
55
|
+
*
|
56
|
+
* # Comparing strings
|
57
|
+
*
|
58
|
+
* C developers have the `strcmp()` function for comparing strings. In JavaScript, you just use the less-
|
59
|
+
* than and greater-than operators:
|
60
|
+
*
|
61
|
+
* var a = "a";
|
62
|
+
* var b = "b";
|
63
|
+
* if (a < b) // true
|
64
|
+
* print(a + " is less than " + b);
|
65
|
+
* else if (a > b)
|
66
|
+
* print(a + " is greater than " + b);
|
67
|
+
* else
|
68
|
+
* print(a + " and " + b + " are equal.");
|
69
|
+
*
|
70
|
+
* A similar result can be achieved using the `localeCompare` method inherited by `String` instances.
|
71
|
+
*
|
72
|
+
* <div class="notice">
|
73
|
+
* Documentation for this class comes from <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String">MDN</a>
|
74
|
+
* and is available under <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons: Attribution-Sharealike license</a>.
|
75
|
+
* </div>
|
76
|
+
*/
|
77
|
+
|
78
|
+
/**
|
79
|
+
* @method constructor
|
80
|
+
* Creates new String object.
|
81
|
+
* @param {Object} value The value to wrap into String object.
|
82
|
+
*/
|
83
|
+
|
84
|
+
//Methods
|
85
|
+
|
86
|
+
/**
|
87
|
+
* @method fromCharCode
|
88
|
+
* Returns a string created by using the specified sequence of Unicode values.
|
89
|
+
*
|
90
|
+
* This method returns a string and not a `String` object.
|
91
|
+
*
|
92
|
+
* Because `fromCharCode` is a static method of `String`, you always use it as `String.fromCharCode()`,
|
93
|
+
* rather than as a method of a `String` object you created.
|
94
|
+
*
|
95
|
+
* Although most common Unicode values can be represented in a fixed width system/with one number (as
|
96
|
+
* expected early on during JavaScript standardization) and `fromCharCode()` can be used to return a
|
97
|
+
* single character for the most common values (i.e., UCS-2 values which are the subset of UTF-16 with
|
98
|
+
* the most common characters), in order to deal with ALL legal Unicode values, `fromCharCode()` alone
|
99
|
+
* is inadequate. Since the higher code point characters use two (lower value) "surrogate" numbers to
|
100
|
+
* form a single character, `fromCharCode()` can be used to return such a pair and thus adequately
|
101
|
+
* represent these higher valued characters.
|
102
|
+
*
|
103
|
+
* Be aware, therefore, that the following utility function to grab the accurate character even for
|
104
|
+
* higher value code points, may be returning a value which is rendered as a single character, but
|
105
|
+
* which has a string count of two (though usually the count will be one).
|
106
|
+
*
|
107
|
+
* // String.fromCharCode() alone cannot get the character at such a high code point
|
108
|
+
* // The following, on the other hand, can return a 4-byte character as well as the
|
109
|
+
* // usual 2-byte ones (i.e., it can return a single character which actually has
|
110
|
+
* // a string length of 2 instead of 1!)
|
111
|
+
* alert(fixedFromCharCode(0x2F804)); // or 194564 in decimal
|
112
|
+
*
|
113
|
+
* function fixedFromCharCode (codePt) {
|
114
|
+
* if (codePt > 0xFFFF) {
|
115
|
+
* codePt -= 0x10000;
|
116
|
+
* return String.fromCharCode(0xD800 + (codePt >> 10), 0xDC00 +
|
117
|
+
* (codePt & 0x3FF));
|
118
|
+
* }
|
119
|
+
* else {
|
120
|
+
* return String.fromCharCode(codePt);
|
121
|
+
* }
|
122
|
+
* }
|
123
|
+
*
|
124
|
+
* The following example returns the string "ABC".
|
125
|
+
*
|
126
|
+
* String.fromCharCode(65,66,67)
|
127
|
+
*
|
128
|
+
* @param {Number...} numbers A sequence of numbers that are Unicode values.
|
129
|
+
* @return {String} String containing characters from encoding.
|
130
|
+
*/
|
131
|
+
|
132
|
+
//Properties
|
133
|
+
|
134
|
+
/**
|
135
|
+
* @property {Number} length
|
136
|
+
* Reflects the length of the string.
|
137
|
+
*
|
138
|
+
* This property returns the number of code units in the string. UTF-16, the string format used by JavaScript, uses a single 16-bit
|
139
|
+
* code unit to represent the most common characters, but needs to use two code units for less commonly-used characters, so it's
|
140
|
+
* possible for the value returned by `length` to not match the actual number of characters in the string.
|
141
|
+
*
|
142
|
+
* For an empty string, `length` is 0.
|
143
|
+
*
|
144
|
+
* var x = "Netscape";
|
145
|
+
* var empty = "";
|
146
|
+
*
|
147
|
+
* console.log("Netspace is " + x.length + " code units long");
|
148
|
+
* console.log("The empty string is has a length of " + empty.length); // should be 0
|
149
|
+
*/
|
150
|
+
|
151
|
+
//Methods
|
152
|
+
|
153
|
+
/**
|
154
|
+
* @method charAt
|
155
|
+
* Returns the character at the specified index.
|
156
|
+
*
|
157
|
+
* Characters in a string are indexed from left to right. The index of the first character is 0, and
|
158
|
+
* the index of the last character in a string called `stringName` is `stringName.length - 1`. If the
|
159
|
+
* index you supply is out of range, JavaScript returns an empty string.
|
160
|
+
*
|
161
|
+
* The following example displays characters at different locations in the string "Brave new world":
|
162
|
+
*
|
163
|
+
* var anyString="Brave new world";
|
164
|
+
*
|
165
|
+
* document.writeln("The character at index 0 is '" + anyString.charAt(0) + "'");
|
166
|
+
* document.writeln("The character at index 1 is '" + anyString.charAt(1) + "'");
|
167
|
+
* document.writeln("The character at index 2 is '" + anyString.charAt(2) + "'");
|
168
|
+
* document.writeln("The character at index 3 is '" + anyString.charAt(3) + "'");
|
169
|
+
* document.writeln("The character at index 4 is '" + anyString.charAt(4) + "'");
|
170
|
+
* document.writeln("The character at index 999 is '" + anyString.charAt(999) + "'");
|
171
|
+
*
|
172
|
+
* These lines display the following:
|
173
|
+
*
|
174
|
+
* The character at index 0 is 'B'
|
175
|
+
* The character at index 1 is 'r'
|
176
|
+
* The character at index 2 is 'a'
|
177
|
+
* The character at index 3 is 'v'
|
178
|
+
* The character at index 4 is 'e'
|
179
|
+
* The character at index 999 is ''
|
180
|
+
*
|
181
|
+
* The following provides a means of ensuring that going through a string loop always provides a whole
|
182
|
+
* character, even if the string contains characters that are not in the Basic Multi-lingual Plane.
|
183
|
+
*
|
184
|
+
* var str = 'A\uD87E\uDC04Z'; // We could also use a non-BMP character directly
|
185
|
+
* for (var i=0, chr; i < str.length; i++) {
|
186
|
+
* if ((chr = getWholeChar(str, i)) === false) {continue;} // Adapt this line at the top of
|
187
|
+
* each loop, passing in the whole string and the current iteration and returning a variable to
|
188
|
+
* represent the individual character
|
189
|
+
* alert(chr);
|
190
|
+
* }
|
191
|
+
*
|
192
|
+
* function getWholeChar (str, i) {
|
193
|
+
* var code = str.charCodeAt(i);
|
194
|
+
*
|
195
|
+
* if (isNaN(code)) {
|
196
|
+
* return ''; // Position not found
|
197
|
+
* }
|
198
|
+
* if (code < 0xD800 || code > 0xDFFF) {
|
199
|
+
* return str.charAt(i);
|
200
|
+
* }
|
201
|
+
* if (0xD800 <= code && code <= 0xDBFF) { // High surrogate (could change last hex to 0xDB7F
|
202
|
+
* to treat high private surrogates as single characters)
|
203
|
+
* if (str.length <= (i+1)) {
|
204
|
+
* throw 'High surrogate without following low surrogate';
|
205
|
+
* }
|
206
|
+
* var next = str.charCodeAt(i+1);
|
207
|
+
* if (0xDC00 > next || next > 0xDFFF) {
|
208
|
+
* throw 'High surrogate without following low surrogate';
|
209
|
+
* }
|
210
|
+
* return str.charAt(i)+str.charAt(i+1);
|
211
|
+
* }
|
212
|
+
* // Low surrogate (0xDC00 <= code && code <= 0xDFFF)
|
213
|
+
* if (i === 0) {
|
214
|
+
* throw 'Low surrogate without preceding high surrogate';
|
215
|
+
* }
|
216
|
+
* var prev = str.charCodeAt(i-1);
|
217
|
+
* if (0xD800 > prev || prev > 0xDBFF) { // (could change last hex to 0xDB7F to treat high private
|
218
|
+
* surrogates as single characters)
|
219
|
+
* throw 'Low surrogate without preceding high surrogate';
|
220
|
+
* }
|
221
|
+
* return false; // We can pass over low surrogates now as the second component in a pair which we
|
222
|
+
* have already processed
|
223
|
+
* }
|
224
|
+
*
|
225
|
+
* While the second example may be more frequently useful for those wishing to support non-BMP
|
226
|
+
* characters (since the above does not require the caller to know where any non-BMP character might
|
227
|
+
* appear), in the event that one _does_ wish, in choosing a character by index, to treat the surrogate
|
228
|
+
* pairs within a string as the single characters they represent, one can use the following:
|
229
|
+
*
|
230
|
+
* function fixedCharAt (str, idx) {
|
231
|
+
* var ret = '';
|
232
|
+
* str += '';
|
233
|
+
* var end = str.length;
|
234
|
+
*
|
235
|
+
* var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
|
236
|
+
* while ((surrogatePairs.exec(str)) != null) {
|
237
|
+
* var li = surrogatePairs.lastIndex;
|
238
|
+
* if (li - 2 < idx) {
|
239
|
+
* idx++;
|
240
|
+
* }
|
241
|
+
* else {
|
242
|
+
* break;
|
243
|
+
* }
|
244
|
+
* }
|
245
|
+
*
|
246
|
+
* if (idx >= end || idx < 0) {
|
247
|
+
* return '';
|
248
|
+
* }
|
249
|
+
*
|
250
|
+
* ret += str.charAt(idx);
|
251
|
+
*
|
252
|
+
* if (/[\uD800-\uDBFF]/.test(ret) && /[\uDC00-\uDFFF]/.test(str.charAt(idx+1))) {
|
253
|
+
* ret += str.charAt(idx+1); // Go one further, since one of the "characters" is part of a
|
254
|
+
* surrogate pair
|
255
|
+
* }
|
256
|
+
* return ret;
|
257
|
+
* }
|
258
|
+
*
|
259
|
+
* @param {Number} index An integer between 0 and 1 less than the length of the string.
|
260
|
+
* @return {String} Individual character from string.
|
261
|
+
*/
|
262
|
+
|
263
|
+
/**
|
264
|
+
* @method charCodeAt
|
265
|
+
* Returns a number indicating the Unicode value of the character at the given index.
|
266
|
+
*
|
267
|
+
* Unicode code points range from 0 to 1,114,111. The first 128 Unicode code points are a direct match
|
268
|
+
* of the ASCII character encoding.
|
269
|
+
*
|
270
|
+
* Note that `charCodeAt` will always return a value that is less than 65,536. This is because the
|
271
|
+
* higher code points are represented by a pair of (lower valued) "surrogate" pseudo-characters which
|
272
|
+
* are used to comprise the real character. Because of this, in order to examine or reproduce the full
|
273
|
+
* character for individual characters of value 65,536 and above, for such characters, it is necessary
|
274
|
+
* to retrieve not only `charCodeAt(i)`, but also `charCodeAt(i+1)` (as if examining/reproducing a
|
275
|
+
* string with two letters). See example 2 and 3 below.
|
276
|
+
*
|
277
|
+
* `charCodeAt` returns `NaN` if the given index is not greater than 0 or is greater than the length of
|
278
|
+
* the string.
|
279
|
+
*
|
280
|
+
* Backward Compatibility with JavaScript 1.2
|
281
|
+
*
|
282
|
+
* The `charCodeAt` method returns a number indicating the ISO-Latin-1 codeset value of the character
|
283
|
+
* at the given index. The ISO-Latin-1 codeset ranges from 0 to 255. The first 0 to 127 are a direct
|
284
|
+
* match of the ASCII character set.
|
285
|
+
*
|
286
|
+
* Example 1: Using `charCodeAt`
|
287
|
+
*
|
288
|
+
* The following example returns 65, the Unicode value for A.
|
289
|
+
*
|
290
|
+
* "ABC".charCodeAt(0) // returns 65
|
291
|
+
*
|
292
|
+
* Example 2: Fixing `charCodeAt` to handle non-Basic-Multilingual-Plane characters if their presence
|
293
|
+
* earlier in the string is unknown
|
294
|
+
*
|
295
|
+
* This version might be used in for loops and the like when it is unknown whether non-BMP characters
|
296
|
+
* exist before the specified index position.
|
297
|
+
*
|
298
|
+
* function fixedCharCodeAt (str, idx) {
|
299
|
+
* // ex. fixedCharCodeAt ('\uD800\uDC00', 0); // 65536
|
300
|
+
* // ex. fixedCharCodeAt ('\uD800\uDC00', 1); // 65536
|
301
|
+
* idx = idx || 0;
|
302
|
+
* var code = str.charCodeAt(idx);
|
303
|
+
* var hi, low;
|
304
|
+
* if (0xD800 <= code && code <= 0xDBFF) { // High surrogate (could change last hex to 0xDB7F to treat high private surrogates as single characters)
|
305
|
+
* hi = code;
|
306
|
+
* low = str.charCodeAt(idx+1);
|
307
|
+
* if (isNaN(low)) {
|
308
|
+
* throw 'High surrogate not followed by low surrogate in fixedCharCodeAt()';
|
309
|
+
* }
|
310
|
+
* return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
|
311
|
+
* }
|
312
|
+
* if (0xDC00 <= code && code <= 0xDFFF) { // Low surrogate
|
313
|
+
* // We return false to allow loops to skip this iteration since should have already handled
|
314
|
+
* high surrogate above in the previous iteration
|
315
|
+
* return false;
|
316
|
+
* }
|
317
|
+
* return code;
|
318
|
+
* }
|
319
|
+
*
|
320
|
+
* Example 3: Fixing `charCodeAt` to handle non-Basic-Multilingual-Plane characters if their presence
|
321
|
+
* earlier in the string is known
|
322
|
+
*
|
323
|
+
* function knownCharCodeAt (str, idx) {
|
324
|
+
* str += '';
|
325
|
+
* var code,
|
326
|
+
* end = str.length;
|
327
|
+
*
|
328
|
+
* var surrogatePairs = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
|
329
|
+
* while ((surrogatePairs.exec(str)) != null) {
|
330
|
+
* var li = surrogatePairs.lastIndex;
|
331
|
+
* if (li - 2 < idx) {
|
332
|
+
* idx++;
|
333
|
+
* }
|
334
|
+
* else {
|
335
|
+
* break;
|
336
|
+
* }
|
337
|
+
* }
|
338
|
+
*
|
339
|
+
* if (idx >= end || idx < 0) {
|
340
|
+
* return NaN;
|
341
|
+
* }
|
342
|
+
*
|
343
|
+
* code = str.charCodeAt(idx);
|
344
|
+
*
|
345
|
+
* var hi, low;
|
346
|
+
* if (0xD800 <= code && code <= 0xDBFF) {
|
347
|
+
* hi = code;
|
348
|
+
* low = str.charCodeAt(idx+1); // Go one further, since one of the "characters" is part of
|
349
|
+
* a surrogate pair
|
350
|
+
* return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
|
351
|
+
* }
|
352
|
+
* return code;
|
353
|
+
* }
|
354
|
+
*
|
355
|
+
* @param {Number} index An integer greater than 0 and less than the length of the string; if it is
|
356
|
+
* not a number, it defaults to 0.
|
357
|
+
* @return {Number} Value between 0 and 65535.
|
358
|
+
*/
|
359
|
+
|
360
|
+
/**
|
361
|
+
* @method concat
|
362
|
+
* Combines combines the text from one or more strings and returns a new string. Changes to the text in
|
363
|
+
* one string do not affect the other string.
|
364
|
+
*
|
365
|
+
* The following example combines strings into a new string.
|
366
|
+
*
|
367
|
+
* var hello = "Hello, ";
|
368
|
+
* console.log(hello.concat("Kevin", " have a nice day.")); // Hello, Kevin have a nice day.
|
369
|
+
*
|
370
|
+
* @param {String...} strings The strings to concatenate.
|
371
|
+
* @return {String} Result of both strings.
|
372
|
+
*/
|
373
|
+
|
374
|
+
/**
|
375
|
+
* @method indexOf
|
376
|
+
* Returns the index within the calling `String` object of the first occurrence of the specified value,
|
377
|
+
* or -1 if not found.
|
378
|
+
*
|
379
|
+
* Characters in a string are indexed from left to right. The index of the first character is 0, and the index of the last character
|
380
|
+
* of a string called `stringName` is `stringName.length - 1`.
|
381
|
+
*
|
382
|
+
* "Blue Whale".indexOf("Blue") // returns 0
|
383
|
+
* "Blue Whale".indexOf("Blute") // returns -1
|
384
|
+
* "Blue Whale".indexOf("Whale",0) // returns 5
|
385
|
+
* "Blue Whale".indexOf("Whale",5) // returns 5
|
386
|
+
* "Blue Whale".indexOf("",9) // returns 9
|
387
|
+
* "Blue Whale".indexOf("",10) // returns 10
|
388
|
+
* "Blue Whale".indexOf("",11) // returns 10
|
389
|
+
*
|
390
|
+
* The `indexOf` method is case sensitive. For example, the following expression returns -1:
|
391
|
+
*
|
392
|
+
* "Blue Whale".indexOf("blue")
|
393
|
+
*
|
394
|
+
* Note that '0' doesn't evaluate to true and '-1' doesn't evaluate to false. Therefore, when checking if a specific string exists
|
395
|
+
* within another string the correct way to check would be:
|
396
|
+
*
|
397
|
+
* "Blue Whale".indexOf("Blue") != -1 // true
|
398
|
+
* "Blue Whale".indexOf("Bloe") != -1 // false
|
399
|
+
*
|
400
|
+
* The following example uses indexOf and lastIndexOf to locate values in the string "Brave new world".
|
401
|
+
*
|
402
|
+
* var anyString="Brave new world"
|
403
|
+
*
|
404
|
+
* document.write("<P>The index of the first w from the beginning is " + anyString.indexOf("w")) // Displays 8
|
405
|
+
* document.write("<P>The index of the first w from the end is " + anyString.lastIndexOf("w")) // Displays 10
|
406
|
+
* document.write("<P>The index of 'new' from the beginning is " + anyString.indexOf("new")) // Displays 6
|
407
|
+
* document.write("<P>The index of 'new' from the end is " + anyString.lastIndexOf("new")) // Displays 6
|
408
|
+
*
|
409
|
+
* The following example defines two string variables. The variables contain the same string except that the second string contains
|
410
|
+
* uppercase letters. The first `writeln` method displays 19. But because the `indexOf` method is case sensitive, the string
|
411
|
+
* "cheddar" is not found in `myCapString`, so the second `writeln` method displays -1.
|
412
|
+
*
|
413
|
+
* myString="brie, pepper jack, cheddar"
|
414
|
+
* myCapString="Brie, Pepper Jack, Cheddar"
|
415
|
+
* document.writeln('myString.indexOf("cheddar") is ' + myString.indexOf("cheddar"))
|
416
|
+
* document.writeln('<P>myCapString.indexOf("cheddar") is ' + myCapString.indexOf("cheddar"))
|
417
|
+
*
|
418
|
+
* The following example sets count to the number of occurrences of the letter x in the string str:
|
419
|
+
*
|
420
|
+
* count = 0;
|
421
|
+
* pos = str.indexOf("x");
|
422
|
+
* while ( pos != -1 ) {
|
423
|
+
* count++;
|
424
|
+
* pos = str.indexOf("x",pos+1);
|
425
|
+
* }
|
426
|
+
*
|
427
|
+
* @param {String} searchValue A string representing the value to search for.
|
428
|
+
* @param {Number} fromIndex The location within the calling string to start the search from. It can be any integer between 0 and
|
429
|
+
* the length of the string. The default value is 0.
|
430
|
+
* @return {Number} Position of specified value or -1 if not found.
|
431
|
+
*/
|
432
|
+
|
433
|
+
/**
|
434
|
+
* @method lastIndexOf
|
435
|
+
* Returns the index within the calling String object of the last occurrence of
|
436
|
+
* the specified value, or -1 if not found. The calling string is searched
|
437
|
+
* backward, starting at fromIndex.
|
438
|
+
*
|
439
|
+
* Characters in a string are indexed from left to right. The index of the first character is 0, and the index of the last character
|
440
|
+
* is `stringName.length - 1`.
|
441
|
+
*
|
442
|
+
* "canal".lastIndexOf("a") // returns 3
|
443
|
+
* "canal".lastIndexOf("a",2) // returns 1
|
444
|
+
* "canal".lastIndexOf("a",0) // returns -1
|
445
|
+
* "canal".lastIndexOf("x") // returns -1
|
446
|
+
*
|
447
|
+
* The `lastIndexOf` method is case sensitive. For example, the following expression returns -1:
|
448
|
+
*
|
449
|
+
* "Blue Whale, Killer Whale".lastIndexOf("blue")
|
450
|
+
*
|
451
|
+
* The following example uses `indexOf` and `lastIndexOf` to locate values in the string "`Brave new world`".
|
452
|
+
*
|
453
|
+
* var anyString="Brave new world"
|
454
|
+
*
|
455
|
+
* // Displays 8
|
456
|
+
* document.write("<P>The index of the first w from the beginning is " +
|
457
|
+
* anyString.indexOf("w"))
|
458
|
+
* // Displays 10
|
459
|
+
* document.write("<P>The index of the first w from the end is " +
|
460
|
+
* anyString.lastIndexOf("w"))
|
461
|
+
* // Displays 6
|
462
|
+
* document.write("<P>The index of 'new' from the beginning is " +
|
463
|
+
* anyString.indexOf("new"))
|
464
|
+
* // Displays 6
|
465
|
+
* document.write("<P>The index of 'new' from the end is " +
|
466
|
+
* anyString.lastIndexOf("new"))
|
467
|
+
*
|
468
|
+
* @param {String} searchValue A string representing the value to search for.
|
469
|
+
* @param {Number} fromIndex The location within the calling string to start the search from, indexed from left to right. It can
|
470
|
+
* be any integer between 0 and the length of the string. The default value is the length of the string.
|
471
|
+
* @return {Number}
|
472
|
+
*/
|
473
|
+
|
474
|
+
/**
|
475
|
+
* @method localeCompare
|
476
|
+
* Returns a number indicating whether a reference string comes before or after or is the same as the
|
477
|
+
* given string in sort order.
|
478
|
+
*
|
479
|
+
* Returns a number indicating whether a reference string comes before or after or is the same as the
|
480
|
+
* given string in sort order. Returns -1 if the string occurs earlier in a sort than `compareString`,
|
481
|
+
* returns 1 if the string occurs afterwards in such a sort, and returns 0 if they occur at the same
|
482
|
+
* level.
|
483
|
+
*
|
484
|
+
* The following example demonstrates the different potential results for a string occurring before,
|
485
|
+
* after, or at the same level as another:
|
486
|
+
*
|
487
|
+
* alert('a'.localeCompare('b')); // -1
|
488
|
+
* alert('b'.localeCompare('a')); // 1
|
489
|
+
* alert('b'.localeCompare('b')); // 0
|
490
|
+
*
|
491
|
+
* @param {String} compareString The string against which the referring string is comparing.
|
492
|
+
* @return {Number} Returns -1 if the string occurs earlier in a sort than
|
493
|
+
* compareString, returns 1 if the string occurs afterwards in such a sort, and
|
494
|
+
* returns 0 if they occur at the same level.
|
495
|
+
*/
|
496
|
+
|
497
|
+
/**
|
498
|
+
* @method match
|
499
|
+
* Used to match a regular expression against a string.
|
500
|
+
*
|
501
|
+
* If the regular expression does not include the `g` flag, returns the same result as `regexp.exec(string)`.
|
502
|
+
*
|
503
|
+
* If the regular expression includes the `g` flag, the method returns an Array containing all matches. If there were no matches,
|
504
|
+
* the method returns `null`.
|
505
|
+
*
|
506
|
+
* The returned {@link Array} has an extra `input` property, which contains the regexp that generated it as a result. In addition,
|
507
|
+
* it has an `index` property, which represents the zero-based index of the match in the string.
|
508
|
+
*
|
509
|
+
* In the following example, `match` is used to find "Chapter" followed by 1 or more numeric characters followed by a decimal point
|
510
|
+
* and numeric character 0 or more times. The regular expression includes the `i` flag so that case will be ignored.
|
511
|
+
*
|
512
|
+
* str = "For more information, see Chapter 3.4.5.1";
|
513
|
+
* re = /(chapter \d+(\.\d)*)/i;
|
514
|
+
* found = str.match(re);
|
515
|
+
* document.write(found);
|
516
|
+
*
|
517
|
+
* This returns the array containing Chapter 3.4.5.1,Chapter 3.4.5.1,.1
|
518
|
+
*
|
519
|
+
* "`Chapter 3.4.5.1`" is the first match and the first value remembered from `(Chapter \d+(\.\d)*)`.
|
520
|
+
*
|
521
|
+
* "`.1`" is the second value remembered from `(\.\d)`.
|
522
|
+
*
|
523
|
+
* The following example demonstrates the use of the global and ignore case flags with `match`. All letters A through E and a
|
524
|
+
* through e are returned, each its own element in the array
|
525
|
+
*
|
526
|
+
* var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
527
|
+
* var regexp = /[A-E]/gi;
|
528
|
+
* var matches_array = str.match(regexp);
|
529
|
+
* document.write(matches_array);
|
530
|
+
*
|
531
|
+
* `matches_array` now equals `['A', 'B', 'C', 'D', 'E', 'a', 'b', 'c', 'd', 'e']`.
|
532
|
+
*
|
533
|
+
* @param {RegExp} regexp A {@link RegExp} object. If a non-RegExp object `obj` is passed, it is
|
534
|
+
* implicitly converted to a RegExp by using `new RegExp(obj)`.
|
535
|
+
* @return {Array} Contains results of the match (if any).
|
536
|
+
*/
|
537
|
+
|
538
|
+
/**
|
539
|
+
* @method replace
|
540
|
+
* Used to find a match between a regular expression and a string, and to replace the matched substring
|
541
|
+
* with a new substring.
|
542
|
+
*
|
543
|
+
* This method does not change the `String` object it is called on. It simply returns a new string.
|
544
|
+
*
|
545
|
+
* To perform a global search and replace, either include the `g` flag in the regular expression or if
|
546
|
+
* the first parameter is a string, include `g` in the flags parameter.
|
547
|
+
*
|
548
|
+
* The replacement string can include the following special replacement patterns:
|
549
|
+
*
|
550
|
+
* | Pattern | Inserts
|
551
|
+
* |:--------------|:--------------------------------------------------------------------------------------
|
552
|
+
* | `$$` | Inserts a `$`.
|
553
|
+
* | `$&` | Inserts the matched substring.
|
554
|
+
* | `$`` | Inserts the portion of the string that precedes the matched substring.
|
555
|
+
* | `$'` | Inserts the portion of the string that follows the matched substring.
|
556
|
+
* | `$n` or `$nn` | Where `n` or `nn` are decimal digits, inserts the _n_th parenthesized submatch string, provided the first
|
557
|
+
* | | argument was a `RegExp` object.
|
558
|
+
*
|
559
|
+
* You can specify a function as the second parameter. In this case, the function will be invoked after the match has been
|
560
|
+
* performed. The function's result (return value) will be used as the replacement string. (Note: the above-mentioned special
|
561
|
+
* replacement patterns do not apply in this case.) Note that the function will be invoked multiple times for each full match to be
|
562
|
+
* replaced if the regular expression in the first parameter is global.
|
563
|
+
*
|
564
|
+
* The arguments to the function are as follows:
|
565
|
+
*
|
566
|
+
* | Possible Name | Supplied Value
|
567
|
+
* |:--------------|:--------------------------------------------------------------------------------------
|
568
|
+
* | `str` | The matched substring. (Corresponds to `$&` above.)
|
569
|
+
* | `p1, p2, ...` | The _n_th parenthesized submatch string, provided the first argument to replace was a `RegExp` object.
|
570
|
+
* | | (Correspond to $1, $2, etc. above.)
|
571
|
+
* | `offset` | The offset of the matched substring within the total string being examined. (For example, if the total string
|
572
|
+
* | | was "`abcd`", and the matched substring was "`bc`", then this argument will be 1.)
|
573
|
+
* | `s` | The total string being examined.
|
574
|
+
*
|
575
|
+
* (The exact number of arguments will depend on whether the first argument was a `RegExp` object and, if so, how many parenthesized
|
576
|
+
* submatches it specifies.)
|
577
|
+
*
|
578
|
+
* The following example will set `newString` to "`XXzzzz - XX , zzzz`":
|
579
|
+
*
|
580
|
+
* function replacer(str, p1, p2, offset, s)
|
581
|
+
* {
|
582
|
+
* return str + " - " + p1 + " , " + p2;
|
583
|
+
* }
|
584
|
+
* var newString = "XXzzzz".replace(/(X*)(z*)/, replacer);
|
585
|
+
*
|
586
|
+
* In the following example, the regular expression includes the global and ignore case flags which permits replace to replace each
|
587
|
+
* occurrence of 'apples' in the string with 'oranges'.
|
588
|
+
*
|
589
|
+
* var re = /apples/gi;
|
590
|
+
* var str = "Apples are round, and apples are juicy.";
|
591
|
+
* var newstr = str.replace(re, "oranges");
|
592
|
+
* print(newstr);
|
593
|
+
*
|
594
|
+
* In this version, a string is used as the first parameter and the global and ignore case flags are specified in the flags
|
595
|
+
* parameter.
|
596
|
+
*
|
597
|
+
* var str = "Apples are round, and apples are juicy.";
|
598
|
+
* var newstr = str.replace("apples", "oranges", "gi");
|
599
|
+
* print(newstr);
|
600
|
+
*
|
601
|
+
* Both of these examples print "oranges are round, and oranges are juicy."
|
602
|
+
*
|
603
|
+
* In the following example, the regular expression is defined in replace and includes the ignore case flag.
|
604
|
+
*
|
605
|
+
* var str = "Twas the night before Xmas...";
|
606
|
+
* var newstr = str.replace(/xmas/i, "Christmas");
|
607
|
+
* print(newstr);
|
608
|
+
*
|
609
|
+
* This prints "Twas the night before Christmas..."
|
610
|
+
*
|
611
|
+
* The following script switches the words in the string. For the replacement text, the script uses the $1 and $2 replacement
|
612
|
+
* patterns.
|
613
|
+
*
|
614
|
+
* var re = /(\w+)\s(\w+)/;
|
615
|
+
* var str = "John Smith";
|
616
|
+
* var newstr = str.replace(re, "$2, $1");
|
617
|
+
* print(newstr);
|
618
|
+
*
|
619
|
+
* This prints "Smith, John".
|
620
|
+
*
|
621
|
+
* In this example, all occurrences of capital letters in the string are converted to lower case, and a hyphen is inserted just
|
622
|
+
* before the match location. The important thing here is that additional operations are needed on the matched item before it is
|
623
|
+
* given back as a replacement.
|
624
|
+
*
|
625
|
+
* The replacement function accepts the matched snippet as its parameter, and uses it to transform the case and concatenate the
|
626
|
+
* hyphen before returning.
|
627
|
+
*
|
628
|
+
* function styleHyphenFormat(propertyName)
|
629
|
+
* {
|
630
|
+
* function upperToHyphenLower(match)
|
631
|
+
* {
|
632
|
+
* return '-' + match.toLowerCase();
|
633
|
+
* }
|
634
|
+
* return propertyName.replace(/[A-Z]/, upperToHyphenLower);
|
635
|
+
* }
|
636
|
+
*
|
637
|
+
* Given `styleHyphenFormat('borderTop')`, this returns 'border-top'.
|
638
|
+
*
|
639
|
+
* Because we want to further transform the _result_ of the match before the final substitution is made, we must use a function.
|
640
|
+
* This forces the evaluation of the match prior to the `toLowerCase()` method. If we had tried to do this using the match without a
|
641
|
+
* function, the `toLowerCase()` would have no effect.
|
642
|
+
*
|
643
|
+
* var newString = propertyName.replace(/[A-Z]/, '-' + '$&'.toLowerCase()); // won't work
|
644
|
+
*
|
645
|
+
* This is because `'$&'.toLowerCase()` would be evaluated first as a string literal (resulting in the same `'$&'`) before using the
|
646
|
+
* characters as a pattern.
|
647
|
+
*
|
648
|
+
* The following example replaces a Fahrenheit degree with its equivalent Celsius degree. The Fahrenheit degree should be a number
|
649
|
+
* ending with F. The function returns the Celsius number ending with C. For example, if the input number is 212F, the function
|
650
|
+
* returns 100C. If the number is 0F, the function returns -17.77777777777778C.
|
651
|
+
*
|
652
|
+
* The regular expression `test` checks for any number that ends with F. The number of Fahrenheit degree is accessible to the
|
653
|
+
* function through its second parameter, `p1`. The function sets the Celsius number based on the Fahrenheit degree passed in a
|
654
|
+
* string to the `f2c` function. `f2c` then returns the Celsius number. This function approximates Perl's `s///e` flag.
|
655
|
+
*
|
656
|
+
* function f2c(x)
|
657
|
+
* {
|
658
|
+
* function convert(str, p1, offset, s)
|
659
|
+
* {
|
660
|
+
* return ((p1-32) * 5/9) + "C";
|
661
|
+
* }
|
662
|
+
* var s = String(x);
|
663
|
+
* var test = /(\d+(?:\.\d*)?)F\b/g;
|
664
|
+
* return s.replace(test, convert);
|
665
|
+
* }
|
666
|
+
*
|
667
|
+
* @param {String/RegExp} pattern Either a string or regular expression pattern to search for.
|
668
|
+
*
|
669
|
+
* @param {String/Function} replacement Either string or function:
|
670
|
+
*
|
671
|
+
* - The String to replace the `pattern` with. Number of special replacement patterns are supported;
|
672
|
+
* see the "Specifying a string as a parameter" section above.
|
673
|
+
* - A function to be invoked to create the replacement.
|
674
|
+
* The arguments supplied to this function are described in the "Specifying a function as a parameter"
|
675
|
+
* section above.
|
676
|
+
*
|
677
|
+
* @return {String} String of matched replaced items.
|
678
|
+
*/
|
679
|
+
|
680
|
+
/**
|
681
|
+
* @method search
|
682
|
+
* Executes the search for a match between a regular expression and a specified string.
|
683
|
+
*
|
684
|
+
* If successful, search returns the index of the regular expression inside the string. Otherwise, it
|
685
|
+
* returns -1.
|
686
|
+
*
|
687
|
+
* When you want to know whether a pattern is found in a string use search (similar to the regular
|
688
|
+
* expression `test` method); for more information (but slower execution) use `match` (similar to the
|
689
|
+
* regular expression `exec` method).
|
690
|
+
*
|
691
|
+
* The following example prints a message which depends on the success of the test.
|
692
|
+
*
|
693
|
+
* function testinput(re, str){
|
694
|
+
* if (str.search(re) != -1)
|
695
|
+
* midstring = " contains ";
|
696
|
+
* else
|
697
|
+
* midstring = " does not contain ";
|
698
|
+
* document.write (str + midstring + re);
|
699
|
+
* }
|
700
|
+
*
|
701
|
+
* @param {RegExp} regexp A regular expression object. If a non-RegExp object obj is passed, it is
|
702
|
+
* implicitly converted to a RegExp by using `new RegExp(obj)`.
|
703
|
+
* @return {Number} If successful, search returns the index of the regular
|
704
|
+
* expression inside the string. Otherwise, it returns -1.
|
705
|
+
*/
|
706
|
+
|
707
|
+
/**
|
708
|
+
* @method slice
|
709
|
+
* Extracts a section of a string and returns a new string.
|
710
|
+
*
|
711
|
+
* `slice` extracts the text from one string and returns a new string. Changes to the text in one
|
712
|
+
* string do not affect the other string.
|
713
|
+
*
|
714
|
+
* `slice` extracts up to but not including `endSlice`. `string.slice(1,4)` extracts the second
|
715
|
+
* character through the fourth character (characters indexed 1, 2, and 3).
|
716
|
+
*
|
717
|
+
* As a negative index, `endSlice` indicates an offset from the end of the string. `string.slice(2,-1)`
|
718
|
+
* extracts the third character through the second to last character in the string.
|
719
|
+
*
|
720
|
+
* The following example uses slice to create a new string.
|
721
|
+
*
|
722
|
+
* // assumes a print function is defined
|
723
|
+
* var str1 = "The morning is upon us.";
|
724
|
+
* var str2 = str1.slice(4, -2);
|
725
|
+
* print(str2);
|
726
|
+
*
|
727
|
+
* This writes:
|
728
|
+
*
|
729
|
+
* morning is upon u
|
730
|
+
*
|
731
|
+
* @param {Number} beginSlice The zero-based index at which to begin extraction.
|
732
|
+
* @param {Number} endSlice The zero-based index at which to end extraction. If omitted, `slice`
|
733
|
+
* extracts to the end of the string.
|
734
|
+
* @return {String} All characters from specified start up to (but excluding)
|
735
|
+
* end.
|
736
|
+
*/
|
737
|
+
|
738
|
+
/**
|
739
|
+
* @method split
|
740
|
+
* Splits a `String` object into an array of strings by separating the string into substrings.
|
741
|
+
*
|
742
|
+
* The `split` method returns the new array.
|
743
|
+
*
|
744
|
+
* When found, `separator` is removed from the string and the substrings are returned in an array. If
|
745
|
+
* `separator` is omitted, the array contains one element consisting of the entire string.
|
746
|
+
*
|
747
|
+
* If `separator` is a regular expression that contains capturing parentheses, then each time separator
|
748
|
+
* is matched the results (including any undefined results) of the capturing parentheses are spliced
|
749
|
+
* into the output array. However, not all browsers support this capability.
|
750
|
+
*
|
751
|
+
* Note: When the string is empty, `split` returns an array containing one empty string, rather than an
|
752
|
+
* empty array.
|
753
|
+
*
|
754
|
+
* The following example defines a function that splits a string into an array of strings using the
|
755
|
+
* specified separator. After splitting the string, the function displays messages indicating the
|
756
|
+
* original string (before the split), the separator used, the number of elements in the array, and the
|
757
|
+
* individual array elements.
|
758
|
+
*
|
759
|
+
* function splitString(stringToSplit,separator)
|
760
|
+
* {
|
761
|
+
* var arrayOfStrings = stringToSplit.split(separator);
|
762
|
+
* print('The original string is: "' + stringToSplit + '"');
|
763
|
+
* print('The separator is: "' + separator + '"');
|
764
|
+
* print("The array has " + arrayOfStrings.length + " elements: ");
|
765
|
+
*
|
766
|
+
* for (var i=0; i < arrayOfStrings.length; i++)
|
767
|
+
* print(arrayOfStrings[i] + " / ");
|
768
|
+
* }
|
769
|
+
*
|
770
|
+
* var tempestString = "Oh brave new world that has such people in it.";
|
771
|
+
* var monthString = "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec";
|
772
|
+
*
|
773
|
+
* var space = " ";
|
774
|
+
* var comma = ",";
|
775
|
+
*
|
776
|
+
* splitString(tempestString, space);
|
777
|
+
* splitString(tempestString);
|
778
|
+
* splitString(monthString, comma);
|
779
|
+
*
|
780
|
+
* This example produces the following output:
|
781
|
+
*
|
782
|
+
* The original string is: "Oh brave new world that has such people in it."
|
783
|
+
* The separator is: " "
|
784
|
+
* The array has 10 elements: Oh / brave / new / world / that / has / such / people / in / it. /
|
785
|
+
*
|
786
|
+
* The original string is: "Oh brave new world that has such people in it."
|
787
|
+
* The separator is: "undefined"
|
788
|
+
* The array has 1 elements: Oh brave new world that has such people in it. /
|
789
|
+
*
|
790
|
+
* The original string is: "Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec"
|
791
|
+
* The separator is: ","
|
792
|
+
* The array has 12 elements: Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec /
|
793
|
+
*
|
794
|
+
* In the following example, `split` looks for 0 or more spaces followed by a semicolon followed by 0
|
795
|
+
* or more spaces and, when found, removes the spaces from the string. nameList is the array returned
|
796
|
+
* as a result of split.
|
797
|
+
*
|
798
|
+
* var names = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand ";
|
799
|
+
* print(names);
|
800
|
+
* var re = /\s*;\s*\/;
|
801
|
+
* var nameList = names.split(re);
|
802
|
+
* print(nameList);
|
803
|
+
*
|
804
|
+
* This prints two lines; the first line prints the original string, and the second line prints the
|
805
|
+
* resulting array.
|
806
|
+
*
|
807
|
+
* Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand
|
808
|
+
* Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand
|
809
|
+
*
|
810
|
+
* In the following example, split looks for 0 or more spaces in a string and returns the first 3
|
811
|
+
* splits that it finds.
|
812
|
+
*
|
813
|
+
* var myString = "Hello World. How are you doing?";
|
814
|
+
* var splits = myString.split(" ", 3);
|
815
|
+
* print(splits);
|
816
|
+
*
|
817
|
+
* This script displays the following:
|
818
|
+
*
|
819
|
+
* Hello,World.,How
|
820
|
+
*
|
821
|
+
* If `separator` contains capturing parentheses, matched results are returned in the array.
|
822
|
+
*
|
823
|
+
* var myString = "Hello 1 word. Sentence number 2.";
|
824
|
+
* var splits = myString.split(/(\d)/);
|
825
|
+
* print(splits);
|
826
|
+
*
|
827
|
+
* This script displays the following:
|
828
|
+
*
|
829
|
+
* Hello ,1, word. Sentence number ,2, .
|
830
|
+
*
|
831
|
+
* @param {String} seperator Specifies the character to use for separating the string. The separator is treated as a string or a
|
832
|
+
* regular expression. If separator is omitted, the array returned contains one element consisting of the entire string.
|
833
|
+
* @param {Number} limit Integer specifying a limit on the number of splits to be found. The split method still splits on every
|
834
|
+
* match of separator, but it truncates the returned array to at most limit elements.
|
835
|
+
* @return {Array} Substrings are returned in an array.
|
836
|
+
*/
|
837
|
+
|
838
|
+
/**
|
839
|
+
* @method substr
|
840
|
+
* Returns the characters in a string beginning at the specified location through the specified number
|
841
|
+
* of characters.
|
842
|
+
*
|
843
|
+
* `start` is a character index. The index of the first character is 0, and the index of the last
|
844
|
+
* character is 1 less than the length of the string. `substr` begins extracting characters at start
|
845
|
+
* and collects length characters (unless it reaches the end of the string first, in which case it will
|
846
|
+
* return fewer).
|
847
|
+
*
|
848
|
+
* If `start` is positive and is greater than or equal to the length of the string, `substr` returns an
|
849
|
+
* empty string.
|
850
|
+
*
|
851
|
+
* If `start` is negative, `substr` uses it as a character index from the end of the string. If start
|
852
|
+
* is negative and abs(start) is larger than the length of the string, `substr` uses 0 as the start
|
853
|
+
* index. Note: the described handling of negative values of the start argument is not supported by
|
854
|
+
* Microsoft JScript.
|
855
|
+
*
|
856
|
+
* If length is 0 or negative, `substr` returns an empty string. If length is omitted, `substr`
|
857
|
+
* extracts characters to the end of the string.
|
858
|
+
*
|
859
|
+
* Consider the following script:
|
860
|
+
*
|
861
|
+
* // assumes a print function is defined
|
862
|
+
* var str = "abcdefghij";
|
863
|
+
* print("(1,2): " + str.substr(1,2));
|
864
|
+
* print("(-3,2): " + str.substr(-3,2));
|
865
|
+
* print("(-3): " + str.substr(-3));
|
866
|
+
* print("(1): " + str.substr(1));
|
867
|
+
* print("(-20, 2): " + str.substr(-20,2));
|
868
|
+
* print("(20, 2): " + str.substr(20,2));
|
869
|
+
*
|
870
|
+
* This script displays:
|
871
|
+
*
|
872
|
+
* (1,2): bc
|
873
|
+
* (-3,2): hi
|
874
|
+
* (-3): hij
|
875
|
+
* (1): bcdefghij
|
876
|
+
* (-20, 2): ab
|
877
|
+
* (20, 2):
|
878
|
+
*
|
879
|
+
* @param {Number} start Location at which to begin extracting characters.
|
880
|
+
* @param {Number} length The number of characters to extract.
|
881
|
+
* @return {String} Modified string.
|
882
|
+
*/
|
883
|
+
|
884
|
+
/**
|
885
|
+
* @method substring
|
886
|
+
* Returns the characters in a string between two indexes into the string.
|
887
|
+
*
|
888
|
+
* substring extracts characters from indexA up to but not including indexB. In particular:
|
889
|
+
* * If `indexA` equals `indexB`, `substring` returns an empty string.
|
890
|
+
* * If `indexB` is omitted, substring extracts characters to the end of the string.
|
891
|
+
* * If either argument is less than 0 or is `NaN`, it is treated as if it were 0.
|
892
|
+
* * If either argument is greater than `stringName.length`, it is treated as if it were
|
893
|
+
* `stringName.length`.
|
894
|
+
*
|
895
|
+
* If `indexA` is larger than `indexB`, then the effect of substring is as if the two arguments were
|
896
|
+
* swapped; for example, `str.substring(1, 0) == str.substring(0, 1)`.
|
897
|
+
*
|
898
|
+
* The following example uses substring to display characters from the string "Sencha":
|
899
|
+
*
|
900
|
+
* // assumes a print function is defined
|
901
|
+
* var anyString = "Sencha";
|
902
|
+
*
|
903
|
+
* // Displays "Sen"
|
904
|
+
* print(anyString.substring(0,3));
|
905
|
+
* print(anyString.substring(3,0));
|
906
|
+
*
|
907
|
+
* // Displays "cha"
|
908
|
+
* print(anyString.substring(3,6));
|
909
|
+
* print(anyString.substring(6,3));
|
910
|
+
*
|
911
|
+
* // Displays "Sencha"
|
912
|
+
* print(anyString.substring(0,6));
|
913
|
+
* print(anyString.substring(0,10));
|
914
|
+
*
|
915
|
+
* The following example replaces a substring within a string. It will replace both individual
|
916
|
+
* characters and `substrings`. The function call at the end of the example changes the string "Brave
|
917
|
+
* New World" into "Brave New Web".
|
918
|
+
*
|
919
|
+
* function replaceString(oldS, newS, fullS) {
|
920
|
+
* // Replaces oldS with newS in the string fullS
|
921
|
+
* for (var i = 0; i < fullS.length; i++) {
|
922
|
+
* if (fullS.substring(i, i + oldS.length) == oldS) {
|
923
|
+
* fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length,
|
924
|
+
* fullS.length);
|
925
|
+
* }
|
926
|
+
* }
|
927
|
+
* return fullS;
|
928
|
+
* }
|
929
|
+
*
|
930
|
+
* replaceString("World", "Web", "Brave New World");
|
931
|
+
*
|
932
|
+
* @param {Number} indexA An integer between 0 and one less than the length of the string.
|
933
|
+
* @param {Number} indexB (optional) An integer between 0 and the length of the string.
|
934
|
+
* @return {String} Returns the characters in a string between two indexes into the string.
|
935
|
+
*/
|
936
|
+
|
937
|
+
/**
|
938
|
+
* @method toLocaleLowerCase
|
939
|
+
* The characters within a string are converted to lower case while respecting the current locale. For
|
940
|
+
* most languages, this will return the same as `toLowerCase`.
|
941
|
+
*
|
942
|
+
* The `toLocaleLowerCase` method returns the value of the string converted to lower case according to
|
943
|
+
* any locale-specific case mappings. `toLocaleLowerCase` does not affect the value of the string
|
944
|
+
* itself. In most cases, this will produce the same result as `toLowerCase()`, but for some locales,
|
945
|
+
* such as Turkish, whose case mappings do not follow the default case mappings in Unicode, there may
|
946
|
+
* be a different result.
|
947
|
+
*
|
948
|
+
* The following example displays the string "sencha":
|
949
|
+
*
|
950
|
+
* var upperText="SENCHA";
|
951
|
+
* document.write(upperText.toLocaleLowerCase());
|
952
|
+
*
|
953
|
+
* @return {String} Returns value of the string in lowercase.
|
954
|
+
*/
|
955
|
+
|
956
|
+
/**
|
957
|
+
* @method toLocaleUpperCase
|
958
|
+
* The characters within a string are converted to upper case while respecting the current locale. For
|
959
|
+
* most languages, this will return the same as `toUpperCase`.
|
960
|
+
*
|
961
|
+
* The `toLocaleUpperCase` method returns the value of the string converted to upper case according to
|
962
|
+
* any locale-specific case mappings. `toLocaleUpperCase` does not affect the value of the string
|
963
|
+
* itself. In most cases, this will produce the same result as `toUpperCase()`, but for some locales,
|
964
|
+
* such as Turkish, whose case mappings do not follow the default case mappings in Unicode, there may
|
965
|
+
* be a different result.
|
966
|
+
*
|
967
|
+
* The following example displays the string "SENCHA":
|
968
|
+
*
|
969
|
+
* var lowerText="sencha";
|
970
|
+
* document.write(lowerText.toLocaleUpperCase());
|
971
|
+
*
|
972
|
+
* @return {String} Returns value of the string in uppercase.
|
973
|
+
*/
|
974
|
+
|
975
|
+
/**
|
976
|
+
* @method toLowerCase
|
977
|
+
* Returns the calling string value converted to lower case.
|
978
|
+
*
|
979
|
+
* The `toLowerCase` method returns the value of the string converted to lowercase. `toLowerCase` does
|
980
|
+
* not affect the value of the string itself.
|
981
|
+
*
|
982
|
+
* The following example displays the lowercase string "sencha":
|
983
|
+
*
|
984
|
+
* var upperText="SENCHA";
|
985
|
+
* document.write(upperText.toLowerCase());
|
986
|
+
*
|
987
|
+
* @return {String} Returns value of the string in lowercase.
|
988
|
+
*/
|
989
|
+
|
990
|
+
/**
|
991
|
+
* @method toString
|
992
|
+
* Returns a string representing the specified object. Overrides the `Object.toString` method.
|
993
|
+
*
|
994
|
+
* The `String` object overrides the `toString` method of the `Object` object; it does not inherit
|
995
|
+
* `Object.toString`. For `String` objects, the `toString` method returns a string representation of
|
996
|
+
* the object.
|
997
|
+
*
|
998
|
+
* The following example displays the string value of a String object:
|
999
|
+
*
|
1000
|
+
* x = new String("Hello world");
|
1001
|
+
* alert(x.toString()) // Displays "Hello world"
|
1002
|
+
*
|
1003
|
+
* @return {String} A string representation of the object.
|
1004
|
+
*/
|
1005
|
+
|
1006
|
+
/**
|
1007
|
+
* @method toUpperCase
|
1008
|
+
* Returns the calling string value converted to uppercase.
|
1009
|
+
*
|
1010
|
+
* The `toUpperCase` method returns the value of the string converted to uppercase. `toUpperCase` does
|
1011
|
+
* not affect the value of the string itself.
|
1012
|
+
*
|
1013
|
+
* The following example displays the string "SENCHA":
|
1014
|
+
|
1015
|
+
* var lowerText="sencha";
|
1016
|
+
* document.write(lowerText.toUpperCase());
|
1017
|
+
*
|
1018
|
+
* @return {String} Returns value of the string in uppercase.
|
1019
|
+
*/
|
1020
|
+
|
1021
|
+
/**
|
1022
|
+
* @method valueOf
|
1023
|
+
* Returns the primitive value of the specified object. Overrides the `Object.valueOf` method.
|
1024
|
+
*
|
1025
|
+
* The `valueOf` method of String returns the primitive value of a `String` object as a string data
|
1026
|
+
* type. This value is equivalent to `String.toString`.
|
1027
|
+
*
|
1028
|
+
* This method is usually called internally by JavaScript and not explicitly in code.
|
1029
|
+
*
|
1030
|
+
* x = new String("Hello world");
|
1031
|
+
* alert(x.valueOf()) // Displays "Hello world"
|
1032
|
+
*
|
1033
|
+
* @return {String} Returns value of string.
|
1034
|
+
*/
|
1035
|
+
|
1036
|
+
// ECMAScript 5 methods
|
1037
|
+
|
1038
|
+
/**
|
1039
|
+
* @method trim
|
1040
|
+
* Removes whitespace from both ends of the string.
|
1041
|
+
*
|
1042
|
+
* Does not affect the value of the string itself.
|
1043
|
+
*
|
1044
|
+
* The following example displays the lowercase string `"foo"`:
|
1045
|
+
*
|
1046
|
+
* var orig = " foo ";
|
1047
|
+
* alert(orig.trim());
|
1048
|
+
*
|
1049
|
+
* **NOTE:** This method is part of the ECMAScript 5 standard.
|
1050
|
+
*
|
1051
|
+
* @return {String} A string stripped of whitespace on both ends.
|
1052
|
+
*/
|