Javascript JS过滤器允许数字带破折号和不带破折号

Javascript JS过滤器允许数字带破折号和不带破折号,javascript,filter,html-table,Javascript,Filter,Html Table,我需要筛选一个在键入时实时筛选的表。它将使用电话号码,但需要能够接受带破折号和不带破折号的号码。搜索该号码时,905-000-7777和9050007777都应是可接受的 到目前为止,我已经尝试了几个小时: * { 框大小:边框框; } #我的输入{ 背景图片:url('/css/searchicon.png'); 背景位置:10px 10px; 背景重复:无重复; 宽度:100%; 字体大小:16px; 填充:12px 20px 12px 40px; 边框:1px实心#ddd; 边缘底部:

我需要筛选一个在键入时实时筛选的表。它将使用电话号码,但需要能够接受带破折号和不带破折号的号码。搜索该号码时,905-000-7777和9050007777都应是可接受的

到目前为止,我已经尝试了几个小时:


* {
框大小:边框框;
}
#我的输入{
背景图片:url('/css/searchicon.png');
背景位置:10px 10px;
背景重复:无重复;
宽度:100%;
字体大小:16px;
填充:12px 20px 12px 40px;
边框:1px实心#ddd;
边缘底部:12px;
}
#我的桌子{
边界塌陷:塌陷;
宽度:100%;
边框:1px实心#ddd;
字号:18px;
}
#我的表th,#我的表td{
文本对齐:左对齐;
填充:12px;
}
#myTable tr{
边框底部:1px实心#ddd;
}
#myTable tr.header,#myTable tr:悬停{
背景色:#f1f1;
}
号码搜索
数
905-000-7777
905-282-9992
9050107777
函数myFunction(){
var输入、过滤器、表格、tr、td、i;
输入=document.getElementById(“myInput”);
filter=input.value.toUpperCase();
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}       
}
}

正如其他人在评论中已经解释的那样,在比较之前,您可以从输入内容和单元格内容中删除
-
连字符。请参见下面的工作小提琴:

cleanedFilter = filter.replace("-","");

cellContent = td.innerHTML.toUpperCase().replace("-","");
函数myFunction(){
var输入、过滤器、表格、tr、td、i、清洁过滤器;
输入=document.getElementById(“myInput”);
filter=input.value.toUpperCase();
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
cleanedFilter=过滤器。替换(“-”,“”);
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}       
}
}
*{
框大小:边框框;
}
#我的输入{
背景图片:url('/css/searchicon.png');
背景位置:10px 10px;
背景重复:无重复;
宽度:100%;
字体大小:16px;
填充:12px 20px 12px 40px;
边框:1px实心#ddd;
边缘底部:12px;
}
#我的桌子{
边界塌陷:塌陷;
宽度:100%;
边框:1px实心#ddd;
字号:18px;
}
#我的表th,#我的表td{
文本对齐:左对齐;
填充:12px;
}
#myTable tr{
边框底部:1px实心#ddd;
}
#myTable tr.header,#myTable tr:悬停{
背景色:#f1f1;
}
数字搜索
数
905-000-7777
905-282-9992
9050107777

正如其他人在评论中已经解释的那样,在比较之前,您可以从输入内容和单元格内容中删除
-
连字符。请参见下面的工作小提琴:

cleanedFilter = filter.replace("-","");

cellContent = td.innerHTML.toUpperCase().replace("-","");
函数myFunction(){
var输入、过滤器、表格、tr、td、i、清洁过滤器;
输入=document.getElementById(“myInput”);
filter=input.value.toUpperCase();
table=document.getElementById(“myTable”);
tr=table.getElementsByTagName(“tr”);
cleanedFilter=过滤器。替换(“-”,“”);
对于(i=0;i-1){
tr[i].style.display=“”;
}否则{
tr[i].style.display=“无”;
}
}       
}
}
*{
框大小:边框框;
}
#我的输入{
背景图片:url('/css/searchicon.png');
背景位置:10px 10px;
背景重复:无重复;
宽度:100%;
字体大小:16px;
填充:12px 20px 12px 40px;
边框:1px实心#ddd;
边缘底部:12px;
}
#我的桌子{
边界塌陷:塌陷;
宽度:100%;
边框:1px实心#ddd;
字号:18px;
}
#我的表th,#我的表td{
文本对齐:左对齐;
填充:12px;
}
#myTable tr{
边框底部:1px实心#ddd;
}
#myTable tr.header,#myTable tr:悬停{
背景色:#f1f1;
}
数字搜索
数
905-000-7777
905-282-9992
9050107777

您可以使用regex,它类似于:

/^(\d+-?)+\d+$/

您可以使用regex,它类似于:

/^(\d+-?)+\d+$/

在比较中,从两侧删除破折号。正如ASDFGerte所说,只需删除您想要忽略的字符,因此
filter=input.value.toUpperCase().replace(/-/g',)
td.innerHTML.toUpperCase().replace(/-/g',).indexOf(filter)
。在比较中,从两侧删除破折号。正如ASDFGerte所说,只需删除要忽略的字符即可,因此
filter=input.value.toUpperCase().replace(/-/g',)
td.innerHTML.toUpperCase().replace(/-/g',).indexOf(filter)