使用javascript正则表达式从字符串中提取子字符串

Pra*_*wal 1 javascript regex

我是Javascript中正则表达式的新手.

字符串看起来像

Password=6)8+Ea:4n+DMtJc:W+*0>(-Y517;Persist Security Info=False;User ID=AppleTurnover;Initial Catalog=ProductDB;Data Source=Sydney
Run Code Online (Sandbox Code Playgroud)

我试图从中提取这一点

Password=6)8+Ea:4n+DMtJc:W+*0>(-Y517
Run Code Online (Sandbox Code Playgroud)

从字符串.

所以我有:

string="`Password=6)8+Ea:4n+DMtJc:W+*0>(-Y517;Persist Security Info=False;User ID=AppleTurnover;Initial Catalog=ProductDB;Data Source=Sydney"
substring=string.match('/Password=(.*);/g');
Run Code Online (Sandbox Code Playgroud)

它再次返回整个字符串.这里出了什么问题?

Tus*_*har 7

正则表达式不应该用引号括起来.使用[^;]+选择任何东西,直到;.

var password = string.match(/Password=([^;]+)/)[1];
Run Code Online (Sandbox Code Playgroud)

string = "`Password=6)8+Ea:4n+DMtJc:W+*0>(-Y517;Persist Security Info=False;User ID=AppleTurnover;Initial Catalog=ProductDB;Data Source=Sydney";
var password = string.match(/Password=([^;]+)/)[1];

document.write(password);
Run Code Online (Sandbox Code Playgroud)

或者懒惰的正则表达式也可以使用

/Password=(.*?);/g
             ^
Run Code Online (Sandbox Code Playgroud)

var string = "`Password=6)8+Ea:4n+DMtJc:W+*0>(-Y517;Persist Security Info=False;User ID=AppleTurnover;Initial Catalog=ProductDB;Data Source=Sydney";
var password = string.match(/Password=(.*?);/g);
document.write(password);
Run Code Online (Sandbox Code Playgroud)