Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 if语句中的显式regexp与带有(GBP)磅符号的var的regexp不同_Javascript_Regex_Intellij Idea - Fatal编程技术网

Javascript if语句中的显式regexp与带有(GBP)磅符号的var的regexp不同

Javascript if语句中的显式regexp与带有(GBP)磅符号的var的regexp不同,javascript,regex,intellij-idea,Javascript,Regex,Intellij Idea,在JS有点麻烦,所以我可能遗漏了一些基本的东西,但这似乎有点奇怪: var r = /£/; r.test("!£$%^&*()_+1234567890-="); //yields false /£/.test("!£$%^&*()_+1234567890-="); //yields true 直到在Intellij中调试之后,我才发现一些unicode疯狂,但即使如此,我认为这两种方法应该产生相同的结果 我已经在我的代码中明确使用了/£/解决了这个问题,但最好知道为什么会发

在JS有点麻烦,所以我可能遗漏了一些基本的东西,但这似乎有点奇怪:

var r = /£/;
r.test("!£$%^&*()_+1234567890-="); //yields false
/£/.test("!£$%^&*()_+1234567890-="); //yields true
直到在Intellij中调试之后,我才发现一些unicode疯狂,但即使如此,我认为这两种方法应该产生相同的结果


我已经在我的代码中明确使用了
/£/
解决了这个问题,但最好知道为什么会发生这种情况。

我认为这是unicode和Intellij的问题。如果我有一个带有密码字段的普通旧html文件,然后得到如下结果:

<script type="text/javascript">
    postFunc = function() {
        var pw1 = document.getElementById("password1").value;
        var r1 = /£/;
        alert(r1.test(pw1)); //false
        alert(/£/.test(pw1)); //false
        alert(/\u00A3/.test(pw1)); //true
    }
</script>

postFunc=函数(){
var pw1=document.getElementById(“password1”).value;
风险值r1=/;
警报(r1.测试(pw1));//错误
警报(/£/.test(pw1));//错误
警报(//\u00A3/.test(pw1));//正确
}
前两个警报都说“false”,但在调试器中添加一个与这些测试等效的“Watch”会得到原始问题中描述的结果。将提高到喷气式飞机


为了修复我的代码,我使用了unicode for,这与预期的效果一样。仍然不确定那里发生了什么。

抱歉,无法重新编程。两者都返回true(在Chrome,Win7中)。这很奇怪。。。Def发生在我的机器上(通过Intellij进行调试)-想知道这是否是IDE的产物?那太糟糕了……也许你从其他有隐藏字符的地方复制粘贴了英镑符号。我通过一个输入字段键入了它。是的,我认为这是一个Intellij问题-在下面发布答案,以防其他人看到它。谢谢两位。