--- id: 587d7db8367417b2b2512ba0 challengeType: 1 forumTopicId: 301353 title: 匹配除了字母和数字的所有符号 --- ## Description
已经了解到可以使用缩写\w来匹配字母和数字[A-Za-z0-9_]。不过,有可能想要搜寻的匹配模式是非字母数字字符。 可以使用\W搜寻和\w相反的匹配模式。注意,相反匹配模式使用大写字母。此缩写与[^A-Za-z0-9_]是一样的。 ```js let shortHand = /\W/; let numbers = "42%"; let sentence = "Coding!"; numbers.match(shortHand); // Returns ["%"] sentence.match(shortHand); // Returns ["!"] ```
## Instructions
使用缩写\W来计算不同引号和字符串中非字母数字字符的数量。
## Tests
```yml tests: - text: 你的正则表达式应该使用全局状态修正符。 testString: assert(nonAlphabetRegex.global); - text: "你的正则表达式应该在'The five boxing wizards jump quickly.'中匹配到 6 个非字母数字字符。" testString: assert("The five boxing wizards jump quickly.".match(nonAlphabetRegex).length == 6); - text: 正则表达式应该使用元字符来匹配非字母字符。 testString: assert(/\\W/.test(nonAlphabetRegex.source)); - text: "你的正则表达式应该在'Pack my box with five dozen liquor jugs.'中匹配到 8 个非字母数字字符。" testString: assert("Pack my box with five dozen liquor jugs.".match(nonAlphabetRegex).length == 8); - text: "你的正则表达式应该在'How vexingly quick daft zebras jump!'中匹配到 6 个非字母数字字符。" testString: assert("How vexingly quick daft zebras jump!".match(nonAlphabetRegex).length == 6); - text: "你的正则表达式应该在'123 456 7890 ABC def GHI jkl MNO pqr STU vwx YZ.'中匹配到 12 个非字母数字字符。" testString: assert("123 456 7890 ABC def GHI jkl MNO pqr STU vwx YZ.".match(nonAlphabetRegex).length == 12); ```
## Challenge Seed
```js let quoteSample = "The five boxing wizards jump quickly."; let nonAlphabetRegex = /change/; // Change this line let result = quoteSample.match(nonAlphabetRegex).length; ```
## Solution
```js let quoteSample = "The five boxing wizards_jump quickly."; let nonAlphabetRegex = /\W/g; // Change this line let result = quoteSample.match(nonAlphabetRegex).length; ```