正则表达式 - 语法错误javascript

时间:2017-08-23 11:02:44

标签: javascript regex

阅读此Question之后我试图使用此正则表达式

  

/(小于![^>] +>)+ /克

喜欢这个

var regex = /(!<[^>]+>)+/g;
new RegExp('myString', regex)

但我得到

  

Uncaught SyntaxError:提供给RegExp构造函数的无效标志   &#39; /(小于![^&GT;] +&GT;)+ /克&#39;

有人知道如何使用它吗?

2 个答案:

答案 0 :(得分:1)

如果在字符串中有正则表达式并且想要将其转换为正则表达式对象,则使用

new Regexp

很糟糕,你几乎不应该使用它。 (例外情况是动态生成正则表达式时)。

您不需要使用它:您使用前一行的正则表达式文字创建了对象。

要将正则表达式应用于字符串,请使用match方法:

var regex = /(!<[^>]+>)+/g;
console.log("myString".match(regex));
console.log("Trivial !<tag> example".match(regex));
console.log("!<tag attribute='>>>'> example".match(regex));

(但是applying regex to HTML is usually a terrible idea)。

答案 1 :(得分:0)

RegExp用于从字符串

创建正则表达式

第二个属性应该是igm等标记,但您自己会给出正则表达式。

RegExp的语法是RegExp(regexString,flags)

但你正在使用

var regex = /(!<[^>]+>)+/g;
new RegExp('myString', regex)
                       ^^^^^^

您无法使用RegExp函数来测试字符串。

如果您想针对正则表达式检查'myString',请使用regex.test('myString')

如果您想在'myString'中找到正则表达式的所有匹配项,请使用'myString'.match(regex)