当前位置:嗨网首页>书籍在线阅读

10-具名字符集

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.9 具名字符集

有一些字符集很常见而且实用,人们为这些字符集创建了一些方便的缩写,如表17-1所示。

表17-1  具名字符集

| 具名字符集 | 等 价 物 | 注  释 | | :----- | :----- | :----- | :----- | :----- | | \d | [0-9] | | \D | [^0-9] | | \s | [ \t\v\n \r] | 包含制表符、空格和垂直制表符 | | \S | [^ \t\v\n \r] | | \w | [a-zA-Z] | 注意,破折号和句号没有被包含进来,所以它不能用于域名和CSS类 | | \W | [^a-zA-Z] |

上表中最常用的缩写可能是空格集( \s )。例如,空格通常用于行对齐,但如果想写一段代码来解析它,那么可能希望能够兼顾不同数量的空格:

const stuff =
   'hight:      9\n' +
   'medium:     5\n' +
   'low:        2\n';
const levels = stuff.match(/:\s*[0-9]/g);

(\s后面的*表示"零个或多个",很快会学到这点)。

千万不要忽视反字符集的用途( \D\S\W ),它们用了一种很好的方式来帮助大家摆脱那些不想要的东西。例如,在将电话号码存到数据库之前对其进行标准化,就是一个很不错的想法。因为人们可能会用各种奇怪的方式输入电话号码:破折号、句号、括号和空白。如果只有10个数字,那么对它搜索、监控和识别不就方便多了吗?(或者超出10位的国际电话)。使用\D后事情就简单了:

const messyPhone = '(505) 555-1515';
const neatPhone = messyPhone.replace(/\D/g, '');

同样地,经常使用 \S 来确保必填字段中有数据(它们必须至少包含一个非空格的字符)

const field = '   something   ';
const valid = /\S/.test(field);