我正在创建一个 JavaScript 函数,它将获取用户输入的值并从中创建一个 CSS 类名。以下表达式可用于检测最终结果是否遵循有效的 css 规则
-?[_a-zA-Z]+[_a-zA-Z0-9-]*
但我需要找到一种方法来使用它来删除所有无效字符。
我在想类似的东西:
var newClass = userInput.replace(EVERYTHING BUT /[_a-zA-Z0-9-]/, "");
我正在创建一个 JavaScript 函数,它将获取用户输入的值并从中创建一个 CSS 类名。以下表达式可用于检测最终结果是否遵循有效的 css 规则
-?[_a-zA-Z]+[_a-zA-Z0-9-]*
但我需要找到一种方法来使用它来删除所有无效字符。
我在想类似的东西:
var newClass = userInput.replace(EVERYTHING BUT /[_a-zA-Z0-9-]/, "");
使用^
运算符 and对现有正则表达式进行非常小的修改应该可以工作g
:
/[^a-zA-Z0-9_-]+/g
应该用作:
var newClass = userInput.replace(/[^a-zA-Z0-9-_]/g, '');
^
字符,作为括号内的第一个字符,[]
指定匹配不在括号内的内容(即 - 您要删除的字符)。
修饰符对整个g
输入字符串执行全局匹配。
var newClass = userInput.replace(/\W/, "");
\w 等于 [a-zA-Z0-9_]
\W 等于 [^a-zA-Z0-9_]
var result = userInput.replace(/[^\w-]/g, '');