为什么if(!condition){console.log(condition)}语句显示为true

基彭扎姆

我想制作一个String方法,该方法接受RegExp和回调,然后按RegExp拆分String,然后在拆分数组中插入回调的返回值。简而言之,它将执行以下操作:

"a 1 b 2 c".method(/\d/, function ($1) { return $1 + 1; })
    => [a, 2, b, 3, c]

如果String与RegExp不匹配,则应返回一个数组,如下所示:

"a b c d e".method(/\d/, function ($1) { return $1 + 1; })
    => ["a b c d e"]

我写了这段代码,但是没有按照我的想法工作:

String.prototype.preserveSplitReg = function(reg, func) {

    var rtn = [], 
        that = this.toString();
    if (!reg.test(that)) {
        console.log(reg, that, reg.test(that));
        return [that];
    }

    ...
}

仅在字符串不匹配时才应调用console.log reg,对吗?但是有时候会记录下来(reg, that, true)那个麻烦的Stringreg分别是:

"See <url>http://www.w3.org/TR/html5-diff/</url> for changed elements and attributes, as well as obsolete elements and"
/<url>.*?<\/url>/g

控制台日志为true。我不知道为什么。任何帮助将不胜感激。

阿努巴瓦

这是由于Javascript RegEx引擎(ECMAScript3)中的错误所致

基本上,带有g修饰符的正则表达式无法正确重置,因此多个test()调用会在之间进行切换true and false

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么 if ([].length) {console.log('true');} else console.log('false'), 得到 false?

来自分类Dev

为什么Firebase不让console.log显示颜色?

来自分类Dev

为什么WebIde对alert和console.log显示错误?

来自分类Dev

'if condition'和'console.log'内部相等检查之间的区别

来自分类Dev

为什么 console.log(new Map<String, Number>([])) 在 JavaScript 中记录 true,true?

来自分类Dev

为什么 console.log 打印多次

来自分类Dev

为什么console.log会这样?

来自分类Dev

为什么用!!(condition)代替(condition)?

来自分类Dev

为什么当我console.log我的测试区块链时,为什么不显示previousHash?

来自分类Dev

为什么document.write和console.log为getElementById提供不同的输出?

来自分类Dev

为什么我不能直接将console.log()设置为回调函数

来自分类Dev

为什么 console.log 显示正确的数组但状态错误(ReactJS)

来自分类Dev

Node.js:如果方法抛出异常,则不会显示console.log消息...为什么?

来自分类Dev

为什么在调用 js api 时无法在 console.log 的窗口中显示响应?

来自分类Dev

为什么 js 变量显示 [object object] 但 console.log() 有效?

来自分类Dev

为什么console.log()显示一个数组,但是typeof返回'object'?

来自分类Dev

为什么Chrome console.log以这种烦人的方式显示String对象?

来自分类Dev

为什么console.log显示不正确的对象值?

来自分类Dev

为什么console.log不显示分配的var的IEEE-754浮点值?

来自分类Dev

为什么要在创建项目之前执行返回,然后console.log等待并显示正确的ID?

来自分类Dev

本机反应-为什么我的console.log返回[],但项目显示在屏幕上?

来自分类Dev

为什么 console.log 显示所有内容,而只打印一个?

来自分类Javascript

什么是console.log?

来自分类Dev

为什么要使用angular的$ log而不是console.log?

来自分类Dev

为什么我的最新console.log消息没有显示Requirejs中的main.js更新时

来自分类Dev

为什么即使在等待所有诺言解决之后,最终的console.log也不显示整个数据?

来自分类Dev

调试器检查的代码在 console.log 中显示正确的返回值,那么为什么我返回 undefined?

来自分类Dev

Angular:先打印 Console.log(11),然后打印 console.log(1)。为什么?

来自分类Dev

为什么console.log从记录中排除我的零?

Related 相关文章

  1. 1

    为什么 if ([].length) {console.log('true');} else console.log('false'), 得到 false?

  2. 2

    为什么Firebase不让console.log显示颜色?

  3. 3

    为什么WebIde对alert和console.log显示错误?

  4. 4

    'if condition'和'console.log'内部相等检查之间的区别

  5. 5

    为什么 console.log(new Map<String, Number>([])) 在 JavaScript 中记录 true,true?

  6. 6

    为什么 console.log 打印多次

  7. 7

    为什么console.log会这样?

  8. 8

    为什么用!!(condition)代替(condition)?

  9. 9

    为什么当我console.log我的测试区块链时,为什么不显示previousHash?

  10. 10

    为什么document.write和console.log为getElementById提供不同的输出?

  11. 11

    为什么我不能直接将console.log()设置为回调函数

  12. 12

    为什么 console.log 显示正确的数组但状态错误(ReactJS)

  13. 13

    Node.js:如果方法抛出异常,则不会显示console.log消息...为什么?

  14. 14

    为什么在调用 js api 时无法在 console.log 的窗口中显示响应?

  15. 15

    为什么 js 变量显示 [object object] 但 console.log() 有效?

  16. 16

    为什么console.log()显示一个数组,但是typeof返回'object'?

  17. 17

    为什么Chrome console.log以这种烦人的方式显示String对象?

  18. 18

    为什么console.log显示不正确的对象值?

  19. 19

    为什么console.log不显示分配的var的IEEE-754浮点值?

  20. 20

    为什么要在创建项目之前执行返回,然后console.log等待并显示正确的ID?

  21. 21

    本机反应-为什么我的console.log返回[],但项目显示在屏幕上?

  22. 22

    为什么 console.log 显示所有内容,而只打印一个?

  23. 23

    什么是console.log?

  24. 24

    为什么要使用angular的$ log而不是console.log?

  25. 25

    为什么我的最新console.log消息没有显示Requirejs中的main.js更新时

  26. 26

    为什么即使在等待所有诺言解决之后,最终的console.log也不显示整个数据?

  27. 27

    调试器检查的代码在 console.log 中显示正确的返回值,那么为什么我返回 undefined?

  28. 28

    Angular:先打印 Console.log(11),然后打印 console.log(1)。为什么?

  29. 29

    为什么console.log从记录中排除我的零?

热门标签

归档