正则表达式字符串替换

Pat*_*ick 19 javascript regex string replace

我正在尝试使用正则表达式进行基本的字符串替换,但我找到的答案似乎没有帮助 - 他们直接回答每个人的独特要求,几乎没有解释.

我现在正在使用str = str.replace(/[^a-z0-9+]/g, '');.但我想要做的是允许所有字母数字字符(az和0-9)以及' - '字符.

你能否回答这个问题并解释你如何连接表达式.

koo*_*jah 36

这应该工作:

str = str.replace(/[^a-z0-9-]/g, '');
Run Code Online (Sandbox Code Playgroud)

它之间的一切都表明了你在寻找什么

  1. / 在这里划分你的模式,所以你有一个开始,一个结束
  2. [] 表示您在一个特定角色上寻找的模式
  3. ^ 表示您希望每个字符与下面的内容不对应
  4. a-z 匹配包含的'a'和'z'之间的任何字符
  5. 0-9 匹配包含在'0'和'9'之间的任何数字(表示任何数字)
  6. - 人物
  7. g 最后是一个特殊的参数,说你不希望你的正则表达式停止匹配你的模式的第一个字符,但继续整个字符串

然后你的表达式由/前后分隔.所以在这里你说"每个字母都不是字母,数字或' - '将从字符串中删除".


Vis*_*ioN 7

只需+改为-:

str = str.replace(/[^a-z0-9-]/g, "");
Run Code Online (Sandbox Code Playgroud)

您可以将其读作:

  1. [^ ]:匹配集合中的NOT
  2. [^a-z0-9-]:匹配,如果没有a-z,0-9-
  3. / /g:做全球比赛

更多信息: