• Node.js Video Tutorials

Node.js - doesNotMatch() 函数



Node.js 的 `assert.doesNotMatch()` 函数预期作为参数传入的 *字符串* 不匹配作为第二个参数传入的正则表达式。

这是 Node.js 的 `assert` 模块的内置函数。

语法

以下是 **Node.js `assert.doesNotMatch()` 函数** 的语法:

assert.doesNotMatch(string, regexp[, message]);

参数

此函数接受三个参数。具体描述如下。

  • **字符串** - (必填) 此参数仅接受字符串输入,否则将向输出抛出 AssertionError。

  • **正则表达式** - (必填) 在此参数中,需要传入一个正则表达式,该表达式不应与 **字符串** 匹配。如果两个输入(字符串和正则表达式)相同,则会向输出抛出 AssertionError。

  • **消息** - (可选) 可以将字符串或 Error 类型作为输入传递到此参数。

返回值

当两个输入(字符串和正则表达式)相同时,此方法将向输出抛出 AssertionError。

示例

在下面的示例中,我们将 **字符串** 和 **正则表达式** 值以及 **消息** 传递给 Node.js `assert.doesNotMatch()` 函数。

const assert = require('assert');

var str = 'Tutorialspoint';
var reg = /E-learning platform/;

assert.doesNotMatch(str, reg, 'Both are not matching');

输出

当我们编译并运行代码时,该函数不会向输出抛出任何 AssertionError,因为字符串和正则表达式不相等。

//  Returns nothing

示例

在下面的示例中,我们将 **字符串** 和 **正则表达式** 值以及 **消息** 传递给 *Node.js `assert.doesNotMatch()`* 函数。但是我们传递给 **字符串** 的值是一个整数。

const assert = require('assert');

var str = 96864;
var reg = /E-learning platform/;

assert.doesNotMatch(str, reg, 'Integer is passes instead of string');

输出

当我们编译并运行代码时,该函数将抛出 *AssertionError* 以及 *消息* 到输出,因为 **字符串** 输入值必须只能是 *字符串*。

/home/cg/root/639c2bf348ea8/main.js:6
   assert.doesNotMatch(str, reg, 'Integer is passes instead of string');
      ^
   
TypeError: assert.doesNotMatch is not a function
   at Object.<anonymous> (/home/cg/root/639c2bf348ea8/main.js:6:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

示例

在下面的示例中,我们将 **字符串** 和 **正则表达式** 传递给 *Node.js `assert.doesNotMatch()`* 函数进行比较。但是我们没有在 *消息* 参数中传递任何文本。

const assert = require('assert');

var str = 436;
var reg = /Number/;

assert.doesNotMatch(str, reg);

输出

当我们编译并运行代码时,该函数将分配一个默认错误消息。

/home/cg/root/639c2bf348ea8/main.js:6
   assert.doesNotMatch(str, reg);
      ^
   
TypeError: assert.doesNotMatch is not a function
   at Object.<anonymous> (/home/cg/root/639c2bf348ea8/main.js:6:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

示例

在下面的示例中,我们将 **字符串** 和 **正则表达式** 值以及 **消息** 传递给 *Node.js `assert.doesNotMatch()`* 函数。

const assert = require('assert');

var str = 'Bahubali';
var reg = /Bahubali/;

assert.doesNotMatch(str, reg, 'Both the values are exactly same');

输出

当我们编译并运行代码时,该函数将向输出抛出 *AssertionError*,因为 *字符串* 和 *正则表达式* 相同。

/home/cg/root/639c2bf348ea8/main.js:6
   assert.doesNotMatch(str, reg, 'Both the values are exactly same');
      ^
   
TypeError: assert.doesNotMatch is not a function
   at Object.<anonymous> (/home/cg/root/639c2bf348ea8/main.js:6:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)

示例

在下面的示例中,我们将 **字符串** 和 **正则表达式** 值以及 **消息** 传递给 *Node.js `assert.doesNotMatch()`* 函数。

const assert = require('assert');

var str = 'Good to see you back officer';
var reg = /see/;

assert.doesNotMatch(str, reg, 'Both the values are partially same');

输出

当我们编译并运行代码时,该函数将向输出抛出 *AssertionError*,因为 *字符串* 和 *正则表达式* 部分相同。

/home/cg/root/639c2bf348ea8/main.js:6
   assert.doesNotMatch(str, reg, 'Both the values are partially same');
      ^
   
TypeError: assert.doesNotMatch is not a function
   at Object.<anonymous> (/home/cg/root/639c2bf348ea8/main.js:6:8)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)
   at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
   at startup (internal/bootstrap/node.js:238:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
nodejs_assert_module.htm
广告