我正在使用正则表达式来做一个基本的字符串替换,但我发现的答案似乎没有帮助 – 他们直接回答每个人的独特需求,很少或没有解释.
我使用str = str.replace(/ [^ a-z0-9] / g,”);在这一刻.但是我想做的是允许所有字母数字字符(a-z和0-9)以及“ – ”字符.
你可以回答这个,并解释你如何连接表达式.
这应该工作:
str = str.replace(/[^a-z0-9-]/g,'');
之间的一切表示你正在寻找什么
> /这里是划分你的模式,所以你有一个开始和一个到最后
> []表示您正在寻找一个特定字符的图案
> ^表示你想要每个字符不对应于以下内容
> a-z匹配包含的’a’和’z’之间的任何字符
> 0-9匹配包含在’0’和’9’之间的数字(意思是任何数字)
> – ‘ – ‘字符
> g最后是一个特殊的参数,你不希望你的正则表达式停止匹配你的模式的第一个字符,但继续在整个字符串
然后,您的表达式由/之前和之后分隔.所以在这里你说“每个字符不是一个字母,一个数字或一个” – “将被从字符串”删除“.