Javascript正则表达式匹配(中间的随机字符串)

时间:2013-08-01 05:17:43

标签: javascript regex

我想测试一个字符串是否可以匹配javascript中的模式

问题是中间有一个随机字符串 模式:“account / os / some_random_string / call_back”

所以下面的字符串将匹配

var mystring =“account / os / 1234567 / call_back”

感谢

2 个答案:

答案 0 :(得分:11)

你想要一个以account/os/开头的正则表达式,以/call_back结尾,这里是一个:

/^account\/os\/.*\/call_back$/

.*将匹配任何随机字符串(包括空字符串。)。如果您想在随机字符串上设置最小长度,请更改*

.*    : 0 or more characters
.+    : 1 or more characters
.{n,} : n or more characters (replace n with an actual number)

答案 1 :(得分:2)

嗯,这取决于。如果你想要帐号/ os /和/ call_back之间的每一个字符,请使用:

var randomStr = mystring.match(/account\/os\/(.*)\/call_back/)[1];

匹配将返回一个包含2个元素的数组,第一个包含整个匹配,第二个包含组(。*)。如果您完全确定在那里至少有一个字符,请将*替换为+。

如果您对需要收集的文本有更具体的了解,可以使用以下内容替换。(点几乎可以匹配所有内容):

[A-z] for any of A, B, .. , Y, Z, a, b, .. , y, z
[0-9] for any digit

你可以混合然后去想象,就像这样:

[A-Ea-e0-36-8]

因此,您的模式可能如下所示:

/account\/os\/([A-Ea-e0-36-8]*)\/call_back/

你的例子中有一个数字,所以你可能正在寻找:

/account\/os\/([0-9]*)\/call_back/

/account\/os\/(\d*)\/call_back/

..这是一回事。

希望有所帮助。

编辑:JS的答案没有jsfiddle? http://jsfiddle.net/U2Jhw/