Javascript 从字符串中删除除部分字符以外的所有字符

Javascript 从字符串中删除除部分字符以外的所有字符,javascript,regex,Javascript,Regex,我偶然发现一只虫子。如果在搜索框中键入以下字符: ),(,[,+,\,* 我得到以下错误(我分别输入了每个字符): 我认为问题出在正则表达式部分。第19行: var rgx = new RegExp(this.value, "i"); 因为可能还有其他我没有测试过的字符也会抛出错误,所以我想用一个正则表达式来删除所有字符,除了:a-z,a-z,0-9,“#”。我如何实现这一点 我尝试了以下想法,认为这是错误的: var rgx = new RegExp(this.value, "i"); r

我偶然发现一只虫子。如果在搜索框中键入以下字符:

),(,[,+,\,*

我得到以下错误(我分别输入了每个字符):

我认为问题出在正则表达式部分。第19行:

var rgx = new RegExp(this.value, "i");
因为可能还有其他我没有测试过的字符也会抛出错误,所以我想用一个正则表达式来删除所有字符,除了:
a-z,a-z,0-9,“#”
。我如何实现这一点

我尝试了以下想法,认为这是错误的:

var rgx = new RegExp(this.value, "i");
rgx = rgx.replace(/[^a-z0-9\#]/gi,'');
不出所料,我发现了一个错误:

未捕获类型错误:rgx.replace不是函数

如何使用正则表达式替换除a-z、a-z、0-9、#以外的所有字符

document.addEventListener(“DOMContentLoaded”,function()){
“严格使用”
var style=“+”+”.filter.hidden{“+”不透明度:0;“+”}+
.filter>*{“+”位置:绝对+
转换:.5s易入易出;“+”}“+”;
document.head.insertAdjacentHTML(“beforeed”,style);
var list=document.queryselectoral(“.filter>*”);
var h=列表[0]。视线外,
arr=[],
i=-1,
l=列表长度;
var anim=“transform”在document.body.style?“transform”:“webkitttransform”;
而(++i
@导入url(https://fonts.googleapis.com/css?family=Titillium+网络);
html{
身高:100%;
}
身体{
宽度:100%;
身高:100%;
显示:-网络工具包盒;
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
-webkit盒包:中心;
-webkit内容:中心;
-ms-flex-pack:center;
证明内容:中心;
保证金:0;
字体:14px“Titallium Web”,无衬线;
字母间距:2px;
背景:-webkit线性梯度(320度,#543958 0%,#a06060 25%,#bea27b 50%,#9ca898 75%,#506d8d 100%)无重复中心固定;
背景:线性梯度(130度,#543958 0%,#a06060 25%,#bea27b 50%,#9ca898 75%,#506d8d 100%)无重复中心固定;
}
部分{
-webkit-align-self:top;
-ms flex项目对齐:顶部;
对齐自我:顶部;
利润率:150px0;
显示:块;
位置:相对位置;
宽度:380px;
最大高度:550px;
颜色:rgba(2442302540.7);
背景:rgba(1991312520.05);
边框顶部:15px实心rgba(0,0,0,0.15);
边框底部:40px实心rgba(0,0,0,0.06);
-webkit过滤器:投阴影(26px 26px 20px rgba(0,0,0,0.5));
滤镜:投影(26px26px20pxrgba(0,0,0,0.5));
盒影:-4vh-6vh 16vh-6vh rgba(0,0,0,0.2),-4vh 6vh 16vh-6vh rgba(0,0,0.15);
}
节头{
填充物:1em 1.4em;
背景:rgba(0,0,0,0.12);
边距:0自动0自动;
}
节头h4{
高度:3雷姆;
保证金:0.01雷姆0;
填充:0;
线高:1.1rem;
文本对齐:居中;
边界半径:3px;
字号:1.1rem;
}
节段总管h4跨度{
填充:1.2rem;
}
节段总管h4跨度c{
填充:.5rem;
背景:rgba(0,0,0,0.045);
边框底部:2倍实心rgba(233205254,0.8);
}
节头输入[type=“search”]{
保证金:0.5雷姆;
填充:.5rem;
宽度:95%;
颜色:rgba(2442302540.8);
背景:透明;
边界:无;
边框底部:1px实心rgba(210、158、250、0.5);
字体大小:1.15rem;
-webkit过渡:translateX 6s易用性;
过渡:translateX 6s易用;
}
节头输入[type=“search”]:焦点{
大纲:无;
边框:1px实心rgba(210158250,0.5);
}
节头输入[type=“search”]:焦点::-webkit输入占位符{
-webkit转换:translateX(70%);
转化:translateX(70%);
不透明度:0;
}
节头输入[type=“search”]:焦点::-webkit输入占位符:-moz占位符{
-webkit转换:translateX(70%);
转化:translateX(70%);
不透明度:0;
}
节头输入[type=“search”]:焦点::-webkit输入占位符::-moz占位符{
-webkit转换:translateX(70%);
转化:translateX(70%);
不透明度:0;
}
节头输入[type=“search”]:焦点:--webkit输入占位符:-ms输入占位符{
-webkit转换:translateX(70%);
转化:translateX(70%);
不透明度:0;
}
节头输入[type=“search”]:焦点::-webkit输入占位符::-ms输入占位符{
-webkit转换:translateX(70%);
转化:translateX(70%);
不透明度:0;
}
节头输入[type=“search”]:-webkit输入占位符{
颜色:rgba(233205254,0.8);
-webkit过渡:0.3s轻松;
过渡:在0.3s内轻松过渡;
-webkit转换源:0.50%;
变换原点:0.50%;
}
节头输入[type=“search”]:-moz占位符{
颜色:rgba(233205254,0.8);
-webkit过渡:0.3s轻松;
过渡:在0.3s内轻松过渡;
变换原点:0.50%;
}
节头输入[type=“search”]:-moz占位符{
颜色:rgba(233205254,0.8);
-webkit过渡:0.3s轻松;
过渡:在0.3s内轻松过渡;
变换原点:0.50%;
}
节头输入[type=“search”]:-ms输入占位符{
颜色:rgba(233205254,0.8);
-webkit过渡:0.3s轻松;
过渡:在0.3s内轻松过渡;
变换原点:0.50%;
}
节头输入[type=“search”]:-ms输入占位符{
颜色:rgba(233205254,0.8);
-webkit过渡:0.3s轻松;
过渡:在0.3s内轻松过渡;
变换原点:0.50%;
}
第三节过滤器{
填充:1rem0;
}
第三节过滤器{
宽度:100%;
填充:1rem0;
线高:1.5雷姆;
-webkit过滤器:删除-
var rgx = new RegExp(this.value, "i");
rgx = rgx.replace(/[^a-z0-9\#]/gi,'');
var rgx = new RegExp(this.value.replace(/[^a-z0-9#]+/gi,''), "i");