我做错了。我知道。
我想将匹配的文本作为正则表达式的结果分配给字符串var。
基本上正则表达式应该在两个冒号之间拉出任何东西
所以 blah:xx:blahdeeblah 会导致 xx
var matchedString= $(current).match('[^.:]+):(.*?):([^.:]+');
alert(matchedString);
我希望将xx放入我的matchString变量中。
我检查了jquery文档,他们说匹配应该返回一个数组。 (字符串char数组?)
当我运行时没有任何反应,控制台中没有错误,但我测试了正则表达式,它在js之外工作。我开始认为我只是正在使用正则表达式错误,或者我完全没有得到匹配函数如何完全正常工作
答案 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"