JavaScript 如何将未加引号的纯表达式识别为 RegExp 对象?

How does JavaScript identify unquoted plain expression as RegExp Object?

考虑到 JavaScript RegExp 及其声明过程,您可以在 JavaScript 即时

var exp_blood = /^[A|a|B|b|AB|ab|O|o]{1,2}[+-]{1}$/;

或者用它的构造函数初始化它RegExp

var exp_blood = new RegExp("/^[A|a|B|b|AB|ab|O|o]{1,2}[+-]{1}$/");

考虑到这种情况,我想动态构建一个对象,而无需显式初始化任何构造函数或使用 finite/unique 表达式。我想在不使用名为 HL7V2 的构造函数的情况下声明一个对象。我可以用它的构造函数创建一个对象。例如:

var hl7 = new HL7V2("MSH|^~\&|SENDERAPP|SENDERFAC|COVCDR|COVCDR|20130212221503||ORU^R01|1676326503009050|P|2.6");

但我的目标是像 JavaScript

中的 RegExp 一样即时实例化它
var hl7 = MSH|^~\&|SENDERAPP|SENDERFAC|COVCDR|COVCDR|20130212221503||ORU^R01|1676326503009050|P|2.6;

是否可行或有什么建议?

RegExp 语法是少数几种语法之一 literal syntaxes built in to the language which allow you to create objects of a certain type using a special syntax (other types that can be built using literal syntaxes include strings and arrays)。

这些语法是语言的特性,您不能为自己的类型添加新的语法。

可以使用 object literal syntax 创建对象,但听起来您想创建特定类型的对象,这对您没有帮助 - 我不认为您想要什么可以做到。