15

我有一个看起来像这样的字符串:“你需要的词是'你好'”。

将“hello”(但不带引号)放入 javascript 变量的最佳方法是什么?我想这样做的方法是使用正则表达式(我对此知之甚少)?

任何帮助表示赞赏!

4

3 回答 3

32

使用match()

> var s =  "the word you need is 'hello' ";
> s.match(/'([^']+)'/)[1];
"hello"

这将匹配一个开始',然后是除 之外的任何内容',然后是结束',将其间的所有内容存储在第一个捕获的组中。

于 2012-09-11T09:57:34.323 回答
2

http://jsfiddle.net/Bbh6P/

var mystring = "the word you need is 'hello'"
var matches = mystring.match(/\'(.*?)\'/);  //returns array

​alert(matches[1]);​
于 2012-09-11T10:04:48.517 回答
0

如果您想避免使用正则表达式,则可以使用.split("'")在单引号处拆分字符串,然后使用jquery.map()仅返回奇数索引子字符串,即。所有单引号子字符串的数组。

var str = "the word you need is 'hello'";
var singleQuoted = $.map(str.split("'"), function(substr, i) {
   return (i % 2) ? substr : null;
});

演示

警告

如果原始字符串中出现一个或多个撇号(与单引号相同),则此方法和其他方法将出错。

于 2012-09-11T10:20:24.443 回答