javascript - JavaScript变量名哪些字符是有效的?

  显示原文与译文双语对照的内容

有人能给我一个网页,详细说明可以用来命名JavaScript变量的字符?

我想创建一个小"扩展库"non-JavaScript ( 当谈到语言时,谁似乎感到恶心) 用户在工作。 我喜欢jQuery和Prototype都使用 $ 美元符号,因为我使用 jQuery,我正在寻找另一个漂亮的single-character符号来使用。

我意识到我可以测试出的字符数,提出这个问题,但我的世界许多javascriptsensei建议什么字符使用( 考虑到将来与其他流行库的集成,可能) ( 即使有效) 将是一个坏主意。

时间:

如果要引用 有效JavaScript变量名,我的write-up总结相关的规范部分:

一个标识符必须从 $_ 或任何字符的unicode类别 "大写字母( Lu )", "小写字母( 将)", "首字母大写字母( Lt )", $ 0", $ 1 $ 2"或 $ 3 $ 4" 。

剩下的字符串可以包含相同的字符,加上 U+200C零宽度non-joiner字符, U+200D零宽度joiner字符,和unicode字符类别 "non-spacing标记( Mn )", "间距组合标记( Mc )", "十进制数字数字( )"或 U+200C 0 U+200C 1" 。

我还创建了工具,会告诉你如果任何字符串输入是一个有效的javascript变量名称根据ecmascript 5.1和unicode 6.1:

JavaScript variable name validator


P.S 。让你了解 Anthony Mills的回答是: 如果你是总结所有这些规定在一个javascriptASCII-only正则表达式, 11,236字符长 。 这就是:


//ES5.1/Unicode 6.1
/^(?!(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$)[$A-Z_a-zxaaxb5xbaxc0-xd6xd8-xf6xf8-u02c1u02c6-u02d1u02e0-u02e4u02ecu02eeu0370-u0374u0376u0377u037a-u037du0386u0388-u038au038cu038e-u03a1u03a3-u03f5u03f7-u0481u048a-u0527u0531-u0556u0559u0561-u0587u05d0-u05eau05f0-u05f2u0620-u064au066eu066fu0671-u06d3u06d5u06e5u06e6u06eeu06efu06fa-u06fcu06ffu0710u0712-u072fu074d-u07a5u07b1u07ca-u07eau07f4u07f5u07fau0800-u0815u081au0824u0828u0840-u0858u08a0u08a2-u08acu0904-u0939u093du0950u0958-u0961u0971-u0977u0979-u097fu0985-u098cu098fu0990u0993-u09a8u09aa-u09b0u09b2u09b6-u09b9u09bdu09ceu09dcu09ddu09df-u09e1u09f0u09f1u0a05-u0a0au0a0fu0a10u0a13-u0a28u0a2a-u0a30u0a32u0a33u0a35u0a36u0a38u0a39u0a59-u0a5cu0a5eu0a72-u0a74u0a85-u0a8du0a8f-u0a91u0a93-u0aa8u0aaa-u0ab0u0ab2u0ab3u0ab5-u0ab9u0abdu0ad0u0ae0u0ae1u0b05-u0b0cu0b0fu0b10u0b13-u0b28u0b2a-u0b30u0b32u0b33u0b35-u0b39u0b3du0b5cu0b5du0b5f-u0b61u0b71u0b83u0b85-u0b8au0b8e-u0b90u0b92-u0b95u0b99u0b9au0b9cu0b9eu0b9fu0ba3u0ba4u0ba8-u0baau0bae-u0bb9u0bd0u0c05-u0c0cu0c0e-u0c10u0c12-u0c28u0c2a-u0c33u0c35-u0c39u0c3du0c58u0c59u0c60u0c61u0c85-u0c8cu0c8e-u0c90u0c92-u0ca8u0caa-u0cb3u0cb5-u0cb9u0cbdu0cdeu0ce0u0ce1u0cf1u0cf2u0d05-u0d0cu0d0e-u0d10u0d12-u0d3au0d3du0d4eu0d60u0d61u0d7a-u0d7fu0d85-u0d96u0d9a-u0db1u0db3-u0dbbu0dbdu0dc0-u0dc6u0e01-u0e30u0e32u0e33u0e40-u0e46u0e81u0e82u0e84u0e87u0e88u0e8au0e8du0e94-u0e97u0e99-u0e9fu0ea1-u0ea3u0ea5u0ea7u0eaau0eabu0ead-u0eb0u0eb2u0eb3u0ebdu0ec0-u0ec4u0ec6u0edc-u0edfu0f00u0f40-u0f47u0f49-u0f6cu0f88-u0f8cu1000-u102au103fu1050-u1055u105a-u105du1061u1065u1066u106e-u1070u1075-u1081u108eu10a0-u10c5u10c7u10cdu10d0-u10fau10fc-u1248u124a-u124du1250-u1256u1258u125a-u125du1260-u1288u128a-u128du1290-u12b0u12b2-u12b5u12b8-u12beu12c0u12c2-u12c5u12c8-u12d6u12d8-u1310u1312-u1315u1318-u135au1380-u138fu13a0-u13f4u1401-u166cu166f-u167fu1681-u169au16a0-u16eau16ee-u16f0u1700-u170cu170e-u1711u1720-u1731u1740-u1751u1760-u176cu176e-u1770u1780-u17b3u17d7u17dcu1820-u1877u1880-u18a8u18aau18b0-u18f5u1900-u191cu1950-u196du1970-u1974u1980-u19abu19c1-u19c7u1a00-u1a16u1a20-u1a54u1aa7u1b05-u1b33u1b45-u1b4bu1b83-u1ba0u1baeu1bafu1bba-u1be5u1c00-u1c23u1c4d-u1c4fu1c5a-u1c7du1ce9-u1cecu1cee-u1cf1u1cf5u1cf6u1d00-u1dbfu1e00-u1f15u1f18-u1f1du1f20-u1f45u1f48-u1f4du1f50-u1f57u1f59u1f5bu1f5du1f5f-u1f7du1f80-u1fb4u1fb6-u1fbcu1fbeu1fc2-u1fc4u1fc6-u1fccu1fd0-u1fd3u1fd6-u1fdbu1fe0-u1fecu1ff2-u1ff4u1ff6-u1ffcu2071u207fu2090-u209cu2102u2107u210a-u2113u2115u2119-u211du2124u2126u2128u212a-u212du212f-u2139u213c-u213fu2145-u2149u214eu2160-u2188u2c00-u2c2eu2c30-u2c5eu2c60-u2ce4u2ceb-u2ceeu2cf2u2cf3u2d00-u2d25u2d27u2d2du2d30-u2d67u2d6fu2d80-u2d96u2da0-u2da6u2da8-u2daeu2db0-u2db6u2db8-u2dbeu2dc0-u2dc6u2dc8-u2dceu2dd0-u2dd6u2dd8-u2ddeu2e2fu3005-u3007u3021-u3029u3031-u3035u3038-u303cu3041-u3096u309d-u309fu30a1-u30fau30fc-u30ffu3105-u312du3131-u318eu31a0-u31bau31f0-u31ffu3400-u4db5u4e00-u9fccua000-ua48cua4d0-ua4fdua500-ua60cua610-ua61fua62aua62bua640-ua66eua67f-ua697ua6a0-ua6efua717-ua71fua722-ua788ua78b-ua78eua790-ua793ua7a0-ua7aaua7f8-ua801ua803-ua805ua807-ua80aua80c-ua822ua840-ua873ua882-ua8b3ua8f2-ua8f7ua8fbua90a-ua925ua930-ua946ua960-ua97cua984-ua9b2ua9cfuaa00-uaa28uaa40-uaa42uaa44-uaa4buaa60-uaa76uaa7auaa80-uaaafuaab1uaab5uaab6uaab9-uaabduaac0uaac2uaadb-uaadduaae0-uaaeauaaf2-uaaf4uab01-uab06uab09-uab0euab11-uab16uab20-uab26uab28-uab2euabc0-uabe2uac00-ud7a3ud7b0-ud7c6ud7cb-ud7fbuf900-ufa6dufa70-ufad9ufb00-ufb06ufb13-ufb17ufb1dufb1f-ufb28ufb2a-ufb36ufb38-ufb3cufb3eufb40ufb41ufb43ufb44ufb46-ufbb1ufbd3-ufd3dufd50-ufd8fufd92-ufdc7ufdf0-ufdfbufe70-ufe74ufe76-ufefcuff21-uff3auff41-uff5auff66-uffbeuffc2-uffc7uffca-uffcfuffd2-uffd7uffda-uffdc][$A-Z_a-zxaaxb5xbaxc0-xd6xd8-xf6xf8-u02c1u02c6-u02d1u02e0-u02e4u02ecu02eeu0370-u0374u0376u0377u037a-u037du0386u0388-u038au038cu038e-u03a1u03a3-u03f5u03f7-u0481u048a-u0527u0531-u0556u0559u0561-u0587u05d0-u05eau05f0-u05f2u0620-u064au066eu066fu0671-u06d3u06d5u06e5u06e6u06eeu06efu06fa-u06fcu06ffu0710u0712-u072fu074d-u07a5u07b1u07ca-u07eau07f4u07f5u07fau0800-u0815u081au0824u0828u0840-u0858u08a0u08a2-u08acu0904-u0939u093du0950u0958-u0961u0971-u0977u0979-u097fu0985-u098cu098fu0990u0993-u09a8u09aa-u09b0u09b2u09b6-u09b9u09bdu09ceu09dcu09ddu09df-u09e1u09f0u09f1u0a05-u0a0au0a0fu0a10u0a13-u0a28u0a2a-u0a30u0a32u0a33u0a35u0a36u0a38u0a39u0a59-u0a5cu0a5eu0a72-u0a74u0a85-u0a8du0a8f-u0a91u0a93-u0aa8u0aaa-u0ab0u0ab2u0ab3u0ab5-u0ab9u0abdu0ad0u0ae0u0ae1u0b05-u0b0cu0b0fu0b10u0b13-u0b28u0b2a-u0b30u0b32u0b33u0b35-u0b39u0b3du0b5cu0b5du0b5f-u0b61u0b71u0b83u0b85-u0b8au0b8e-u0b90u0b92-u0b95u0b99u0b9au0b9cu0b9eu0b9fu0ba3u0ba4u0ba8-u0baau0bae-u0bb9u0bd0u0c05-u0c0cu0c0e-u0c10u0c12-u0c28u0c2a-u0c33u0c35-u0c39u0c3du0c58u0c59u0c60u0c61u0c85-u0c8cu0c8e-u0c90u0c92-u0ca8u0caa-u0cb3u0cb5-u0cb9u0cbdu0cdeu0ce0u0ce1u0cf1u0cf2u0d05-u0d0cu0d0e-u0d10u0d12-u0d3au0d3du0d4eu0d60u0d61u0d7a-u0d7fu0d85-u0d96u0d9a-u0db1u0db3-u0dbbu0dbdu0dc0-u0dc6u0e01-u0e30u0e32u0e33u0e40-u0e46u0e81u0e82u0e84u0e87u0e88u0e8au0e8du0e94-u0e97u0e99-u0e9fu0ea1-u0ea3u0ea5u0ea7u0eaau0eabu0ead-u0eb0u0eb2u0eb3u0ebdu0ec0-u0ec4u0ec6u0edc-u0edfu0f00u0f40-u0f47u0f49-u0f6cu0f88-u0f8cu1000-u102au103fu1050-u1055u105a-u105du1061u1065u1066u106e-u1070u1075-u1081u108eu10a0-u10c5u10c7u10cdu10d0-u10fau10fc-u1248u124a-u124du1250-u1256u1258u125a-u125du1260-u1288u128a-u128du1290-u12b0u12b2-u12b5u12b8-u12beu12c0u12c2-u12c5u12c8-u12d6u12d8-u1310u1312-u1315u1318-u135au1380-u138fu13a0-u13f4u1401-u166cu166f-u167fu1681-u169au16a0-u16eau16ee-u16f0u1700-u170cu170e-u1711u1720-u1731u1740-u1751u1760-u176cu176e-u1770u1780-u17b3u17d7u17dcu1820-u1877u1880-u18a8u18aau18b0-u18f5u1900-u191cu1950-u196du1970-u1974u1980-u19abu19c1-u19c7u1a00-u1a16u1a20-u1a54u1aa7u1b05-u1b33u1b45-u1b4bu1b83-u1ba0u1baeu1bafu1bba-u1be5u1c00-u1c23u1c4d-u1c4fu1c5a-u1c7du1ce9-u1cecu1cee-u1cf1u1cf5u1cf6u1d00-u1dbfu1e00-u1f15u1f18-u1f1du1f20-u1f45u1f48-u1f4du1f50-u1f57u1f59u1f5bu1f5du1f5f-u1f7du1f80-u1fb4u1fb6-u1fbcu1fbeu1fc2-u1fc4u1fc6-u1fccu1fd0-u1fd3u1fd6-u1fdbu1fe0-u1fecu1ff2-u1ff4u1ff6-u1ffcu2071u207fu2090-u209cu2102u2107u210a-u2113u2115u2119-u211du2124u2126u2128u212a-u212du212f-u2139u213c-u213fu2145-u2149u214eu2160-u2188u2c00-u2c2eu2c30-u2c5eu2c60-u2ce4u2ceb-u2ceeu2cf2u2cf3u2d00-u2d25u2d27u2d2du2d30-u2d67u2d6fu2d80-u2d96u2da0-u2da6u2da8-u2daeu2db0-u2db6u2db8-u2dbeu2dc0-u2dc6u2dc8-u2dceu2dd0-u2dd6u2dd8-u2ddeu2e2fu3005-u3007u3021-u3029u3031-u3035u3038-u303cu3041-u3096u309d-u309fu30a1-u30fau30fc-u30ffu3105-u312du3131-u318eu31a0-u31bau31f0-u31ffu3400-u4db5u4e00-u9fccua000-ua48cua4d0-ua4fdua500-ua60cua610-ua61fua62aua62bua640-ua66eua67f-ua697ua6a0-ua6efua717-ua71fua722-ua788ua78b-ua78eua790-ua793ua7a0-ua7aaua7f8-ua801ua803-ua805ua807-ua80aua80c-ua822ua840-ua873ua882-ua8b3ua8f2-ua8f7ua8fbua90a-ua925ua930-ua946ua960-ua97cua984-ua9b2ua9cfuaa00-uaa28uaa40-uaa42uaa44-uaa4buaa60-uaa76uaa7auaa80-uaaafuaab1uaab5uaab6uaab9-uaabduaac0uaac2uaadb-uaadduaae0-uaaeauaaf2-uaaf4uab01-uab06uab09-uab0euab11-uab16uab20-uab26uab28-uab2euabc0-uabe2uac00-ud7a3ud7b0-ud7c6ud7cb-ud7fbuf900-ufa6dufa70-ufad9ufb00-ufb06ufb13-ufb17ufb1dufb1f-ufb28ufb2a-ufb36ufb38-ufb3cufb3eufb40ufb41ufb43ufb44ufb46-ufbb1ufbd3-ufd3dufd50-ufd8fufd92-ufdc7ufdf0-ufdfbufe70-ufe74ufe76-ufefcuff21-uff3auff41-uff5auff66-uffbeuffc2-uffc7uffca-uffcfuffd2-uffd7uffda-uffdc0-9u0300-u036fu0483-u0487u0591-u05bdu05bfu05c1u05c2u05c4u05c5u05c7u0610-u061au064b-u0669u0670u06d6-u06dcu06df-u06e4u06e7u06e8u06ea-u06edu06f0-u06f9u0711u0730-u074au07a6-u07b0u07c0-u07c9u07eb-u07f3u0816-u0819u081b-u0823u0825-u0827u0829-u082du0859-u085bu08e4-u08feu0900-u0903u093a-u093cu093e-u094fu0951-u0957u0962u0963u0966-u096fu0981-u0983u09bcu09be-u09c4u09c7u09c8u09cb-u09cdu09d7u09e2u09e3u09e6-u09efu0a01-u0a03u0a3cu0a3e-u0a42u0a47u0a48u0a4b-u0a4du0a51u0a66-u0a71u0a75u0a81-u0a83u0abcu0abe-u0ac5u0ac7-u0ac9u0acb-u0acdu0ae2u0ae3u0ae6-u0aefu0b01-u0b03u0b3cu0b3e-u0b44u0b47u0b48u0b4b-u0b4du0b56u0b57u0b62u0b63u0b66-u0b6fu0b82u0bbe-u0bc2u0bc6-u0bc8u0bca-u0bcdu0bd7u0be6-u0befu0c01-u0c03u0c3e-u0c44u0c46-u0c48u0c4a-u0c4du0c55u0c56u0c62u0c63u0c66-u0c6fu0c82u0c83u0cbcu0cbe-u0cc4u0cc6-u0cc8u0cca-u0ccdu0cd5u0cd6u0ce2u0ce3u0ce6-u0cefu0d02u0d03u0d3e-u0d44u0d46-u0d48u0d4a-u0d4du0d57u0d62u0d63u0d66-u0d6fu0d82u0d83u0dcau0dcf-u0dd4u0dd6u0dd8-u0ddfu0df2u0df3u0e31u0e34-u0e3au0e47-u0e4eu0e50-u0e59u0eb1u0eb4-u0eb9u0ebbu0ebcu0ec8-u0ecdu0ed0-u0ed9u0f18u0f19u0f20-u0f29u0f35u0f37u0f39u0f3eu0f3fu0f71-u0f84u0f86u0f87u0f8d-u0f97u0f99-u0fbcu0fc6u102b-u103eu1040-u1049u1056-u1059u105e-u1060u1062-u1064u1067-u106du1071-u1074u1082-u108du108f-u109du135d-u135fu1712-u1714u1732-u1734u1752u1753u1772u1773u17b4-u17d3u17ddu17e0-u17e9u180b-u180du1810-u1819u18a9u1920-u192bu1930-u193bu1946-u194fu19b0-u19c0u19c8u19c9u19d0-u19d9u1a17-u1a1bu1a55-u1a5eu1a60-u1a7cu1a7f-u1a89u1a90-u1a99u1b00-u1b04u1b34-u1b44u1b50-u1b59u1b6b-u1b73u1b80-u1b82u1ba1-u1badu1bb0-u1bb9u1be6-u1bf3u1c24-u1c37u1c40-u1c49u1c50-u1c59u1cd0-u1cd2u1cd4-u1ce8u1cedu1cf2-u1cf4u1dc0-u1de6u1dfc-u1dffu200cu200du203fu2040u2054u20d0-u20dcu20e1u20e5-u20f0u2cef-u2cf1u2d7fu2de0-u2dffu302a-u302fu3099u309aua620-ua629ua66fua674-ua67dua69fua6f0ua6f1ua802ua806ua80bua823-ua827ua880ua881ua8b4-ua8c4ua8d0-ua8d9ua8e0-ua8f1ua900-ua909ua926-ua92dua947-ua953ua980-ua983ua9b3-ua9c0ua9d0-ua9d9uaa29-uaa36uaa43uaa4cuaa4duaa50-uaa59uaa7buaab0uaab2-uaab4uaab7uaab8uaabeuaabfuaac1uaaeb-uaaefuaaf5uaaf6uabe3-uabeauabecuabeduabf0-uabf9ufb1eufe00-ufe0fufe20-ufe26ufe33ufe34ufe4d-ufe4fuff10-uff19uff3f]*$/

从部分 7.6 标识符名称和标识符的ECMAScript规范中,有效标识符被定义为:


Identifier :: 
 IdentifierName but not ReservedWord

IdentifierName :: 
 IdentifierStart 
 IdentifierName IdentifierPart 

IdentifierStart :: 
 UnicodeLetter 
 $ 
 _ 
  UnicodeEscapeSequence 

IdentifierPart :: 
 IdentifierStart 
 UnicodeCombiningMark 
 UnicodeDigit 
 UnicodeConnectorPunctuation 
  UnicodeEscapeSequence 

UnicodeLetter 
 any character in the Unicode categories"Uppercase letter (Lu)","Lowercase letter (Ll)","Titlecase letter (Lt)", 
"Modifier letter (Lm)","Other letter (Lo)", or"Letter number (Nl)". 

UnicodeCombiningMark 
 any character in the Unicode categories"Non-spacing mark (Mn)" or"Combining spacing mark (Mc)" 

UnicodeDigit 
 any character in the Unicode category"Decimal number (Nd)" 

UnicodeConnectorPunctuation 
 any character in the Unicode category"Connector punctuation (Pc)" 

UnicodeEscapeSequence 
 see 7.8.4. 

HexDigit :: one of 
 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F

这为变量和高尔夫的命名创造了很多机会。 让我们试试一些例子。

有效标识符可以 UnicodeLetter$_ 或者 UnicodeEscapeSequence 开头。 unicode字母是来自以下类别( 查看所有类别 )的任何字符:

  • 大写字母( Lu )
  • 小写字母( Ll )
  • 首字母大写字母( Lt )
  • 修饰字母( Lm )
  • 其他字母( Lo )
  • 字母号( Nl )

这只考虑了一些疯狂的可能性- 工作示例。 如果在所有浏览器中都不工作,那么将它的称为 Bug,因为它应该。


var ᾩ ="something";
var ĦĔĽĻŎ ="hello";
var 〱〱〱〱 ="less than? wtf";
var जावास्क्रिप्ट ="javascript";//ok that's JavaScript in hindi
var KingGeorgeⅦ ="Roman numerals, awesome!";

我想你需要 Ecma 262规范:

http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf

第 15页上有一个定义哪些标识符语法可以使用的节。

基本上,以正则表达式形式: [a-zA-Z_$][0-9a-zA-Z_$]* 。换句话说,第一个字符可以是字母或_或 $, 和其他字符可以是字母或_ $ 或数字。

注意:而其他答案指出,你可以在javascript中使用unicode字符标识符,实际问题是"我应该为扩展库的名称使用什么字符,比如 jQuery"这是这个问题的答案。 你可以在标识符中使用Unicode字符,但不要这样做。 编码总是被搞乱。 将公共标识符保留在 32 -126 ASCII范围内,它是安全的。

在 JavaScript 1.5之前:^[a-zA-Z_$][0-9a-zA-Z_$]*$

英文:必须开始一个美元符号,下划线或字母之一 26 -character字母,大写或小写。 后面的字符( 如果有的话) 可以是其中之一或者十进制数字。

JavaScript 1.5后来 * : ^[p{L}p{Nl}$_][p{L}p{Nl}$p{Mn}p{Mc}p{Nd}p{Pc}]*$

这在英语中更难表达,但在概念上类似于旧语法,加上字母和数字可以来自任何语言。 在第一个字符之后,还允许额外的underscore-like字符( 统称统称"连接器") 和其他字符组合标记("修饰符") 。 ( 这里扩展集中不包括其他货币符号。)

JavaScript 1.5后来也允许unicode转义序列,只要结果是一个字符将被允许在上面的正则表达式。

标识符也不能是当前保留字,也不能是将来使用的保留字。

标识符的长度没有实际限制。 (浏览器不同,但是你会安全地 1000人物和可能比这几个数量级。)

字符类别的链接:

  • 信: LuLl, Lt, Lm, ,
    ( 在 正规表达式 上作为"l"组合)
  • 组合标记("修饰符"): MnMc
  • 数字:
  • 连接器:Pc

* n.b 。 这个perl 正规表达式 旨在描述的语法只有—不会工作在javascript中,不( 还还还) 包括支持unicode的属性。 ( 有一些第三方软件包声称添加这种支持。)

实际上,ECMAScript在第 15页上说: 一个标识符可能从 $, 下划线或UnicodeLetter开始,然后在( 在那之前) 指定UnicodeLetter可以是任何字符的unicodecatagories,瞧,你,,lt,lm和问。 当你查找这些catagories的时候,你会发现这打开的可能性比拉丁文字母多得多。 在谷歌搜索"unicode catagories",你可以找到他们。

磅的Javascript变量

可以用任何字母,$ 或者 _ 字符启动变量。 只要不以数字开头,你也可以包括数字。

开始:[a-z], $, _

包含: [a-z], [0-9], $, _

JQUERY

你可以在你的库中使用 _,这样它就可以使用jQuery来支持 side-by-side 。 但是,你可以设置一个配置,这样jQuery就不会使用 $ 。 而是使用 jQuery 。 为此,只需设置:

 
jQuery.noConflict();

 

此页说明如何执行这里操作。

接受答案排除很多有效的标识符,据我所看到的。 下面是一个我放在一起的正则表达式,它应该遵循规范 ( 关于标识符的章节 7.6 ) 。 使用RegexBuddy创建它,你可以在 http://samples.geekality.net/js-identifiers 编辑器中找到解释的导出。


^[$_p{L}][$_p{L}p{Mn}p{Mc}p{Nd}p{Pc}u200Cu200D]*+$

此外,名称不能是下列保留字之一。

typeof休息,做什么,运算符,情况下,别的,新的,var,抓住,最后,回报,空虚,继续下去,因为, switch, 同时,调试器,功能,,,默认情况下,如果扔掉,删除,尝试,类、枚举、延伸,超级,const,出口,进口,实现,让私人,公共,产量、接口,包,保护,静态的,空的,真的,假

Javascript变量可以有字母,数字,美元符号( 美元) 和下划线( _ ) 。 不能以数字开头。

通常库使用 $_ 作为你将要使用的函数的快捷方式。 虽然名字 $ 或者 _ 是没有意义的,他们是很有用的呼吸急促,因为你将使用函数无论你将知道他们的意思。

如果你的图书馆不是由一个函数使用无处不在,我建议你使用更多的有意义的名称,这些会帮助你和其他人了解你的代码做不必妥协源代码讲究 。

例如你可以看看棒 DateJS图书馆和syntatic糖它允许不需要任何象征或 short-named变量。

你应该首先使代码切实可行,并且只有在尝试使用它之后。

如果 正规表达式 不是必需的,那么最好让浏览器决定使用 eval


function isValidVarName( name ) {
 try {
 eval('(function() { var ' + name + '; })()');
 } catch( e ) {
 return false;
 }
 return true;
}

isValidVarName('my_var');//true
isValidVarName('1');//false

...