将jquery正则表达式匹配中的匹配值分配给字符串变量

时间:2010-06-23 12:27:39

标签: javascript jquery regex

我做错了。我知道。

我想将匹配的文本作为正则表达式的结果分配给字符串var。

基本上正则表达式应该在两个冒号之间拉出任何东西

所以 blah:xx:blahdeeblah 会导致 xx

var matchedString= $(current).match('[^.:]+):(.*?):([^.:]+');
alert(matchedString);

我希望将xx放入我的matchString变量中。

我检查了jquery文档,他们说匹配应该返回一个数组。 (字符串char数组?)

当我运行时没有任何反应,控制台中没有错误,但我测试了正则表达式,它在js之外工作。我开始认为我只是正在使用正则表达式错误,或者我完全没有得到匹配函数如何完全正常工作

1 个答案:

答案 0 :(得分:5)

  

我检查了jquery文档,他们说匹配应该返回一个数组。

jQuery没有这样的方法。 match是字符串的标准javascript方法。所以使用你的例子,这可能是

var str = "blah:xx:blahdeeblah";
var matchedString = str.match(/([^.:]+):(.*?):([^.:]+)/);
alert(matchedString[2]);
// -> "xx"

但是,你真的不需要正则表达式。您可以使用另一个字符串方法split()使用分隔符将字符串分成字符串数组:

var str = "blah:xx:blahdeeblah";
var matchedString = str.split(":");  // split on the : character
alert(matchedString[1]);
// -> "xx"