原子字符的种类与用途
4.原子字符
========
**知识点**
1. 原子的概念
2. 原子的分类
-----------------------------------------------------
1.原子的概念
----------
- 原子是正则表达式最基本的单位,一个模式至少要有一个原子
- 主要由除元字符(下节课学习)之外的可打印与不可打印的字符组成
-----------------------------------------------------
2.原子的分类
----------
- 普通字符: a~z, A~Z, 0~9
- 特殊字符和元字符: 需要转义, '\<br\>', \?, \.
- 非打印字符: \n, \r,\t,\uxxxx(Unicode),\xxx(8),\xdd(10)
- 自定义原子集合:
+ `[abc]`: 匹配集合中任何一个即可
+ `[^abc]`: 不与集合中任何一个匹配
- 通配字符(匹配一组):
+ \d: 匹配任意10进制, `[0-9]`
+ \D: 匹配除10进制数以外字符, `[^0-9]`
+ \s: 匹配任意空白字符, `[\f\n\r\t\v]`
+ \S: 匹配任意非空白字符, `[^\f\n\r\t\v]`
+ \w: 匹配从任意一个字母,数字或下划线(合法单词):`[0-9a-zA-Z_]`
+ \W: 匹配除字母,数字或下划线之外的任意一个(非单词):`[^0-9a-zA-Z_]`
-------------------------------------------------------
## 示例: 控制台执行
```javascript
console.log(
/html/.exec('html,css,javascript'),
//["html", index: 0, input: "html,css,javascript", groups: undefined]
// 如果只对匹配的内容感兴趣,用toString()仅获取基本值
/html/.exec('html,css,javascript').toString(),
// "html"
// + 号是量词,表示一个或多个, 后面还会详细说
/\d+/.test('html'), // false
/\d+/.test('abc9'), // true
/\w+/.test('html5_'), //true
/\w+/.test('*&%$'), // false
/[0-9]/.test('123'), // true
/[a-zA-Z_]/.test('123'), // false
// 以上二行可以用\d+,\w+替代
/[^\d+]/.test('acb'), // true
// 任何一项
/(html|css|javascript)/.test('html,css'), //true
/(html|css|javascript)/.test('php,java')// false
);
```