Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:返回true不工作_Javascript_Regex_Google Chrome_Firefox - Fatal编程技术网

Javascript:返回true不工作

Javascript:返回true不工作,javascript,regex,google-chrome,firefox,Javascript,Regex,Google Chrome,Firefox,我需要防止文本框输入字母和除点字符以外的任何其他特殊字符。以下是我的功能: function key_block(current_element,event){ var str = current_element.val(); //alertify.log(str); var regex = new RegExp("^[0-9.]+$"); var key =

我需要防止文本框输入字母和除点字符以外的任何其他特殊字符。以下是我的功能:

    function key_block(current_element,event){
                var str = current_element.val();
                //alertify.log(str);
                var regex = new RegExp("^[0-9.]+$");
                var key = String.fromCharCode(event.charCode ? event.which : event.charCode);

                if (regex.test(str)) {
                   //event.preventDefault();
                   return true;
                } else {
                     current_element.val('');

                     return false;
                }
            }
if(key_block($(this),e)){
              //allow typing
            }

该代码在Chrome浏览器中运行良好。但在Firefox中,这并不能很好地工作。我在firefox中得到regex.test(str)的值“true”。但我不知道为什么这不允许我键入代码。有人能在这里找到真正的问题吗?

如果我正确理解您的问题,您正在过滤传入事件的
charCode
,以阻止不需要的字符。如果是这种情况,我认为您需要测试
键,而不是
str

if (regex.test(key)) {

请提供一个相关的小提琴,但为什么不直接使用
/^[0-9.]+$/.test(str)
?如果您询问regexp,它在Chrome和Firefox中的作用是相同的。我刚刚在控制台上测试过。