我有一个看起来像这样的字符串:“你需要的字是'你好'”。
将'hello'(但没有引号)放入javascript变量的最佳方法是什么?我想这样做的方法是使用正则表达式(我对此知之甚少)?
任何帮助表示赞赏!
答案 0 :(得分:19)
使用match()
:
> var s = "the word you need is 'hello' ";
> s.match(/'([^']+)'/)[1];
"hello"
这将匹配起始'
,后跟除'
之外的任何内容,然后是结束'
,将所有内容存储在第一个捕获的组中
答案 1 :(得分:11)
使用.split()
很简单,(仅)如果您知道索引
var str = "the word you need is 'hello' world";
console.log( str.split(/'/)[1] );
由于.split()
将我们的字符串转换为数组,因此使用[1]
索引获取确切的密钥:
[
"the word you need is ",
"hello", // at index 1
" world"
]
<强>注意:强>
上述内容将失败,即:it'll fail in 'this' case
,其中[1]
将为您提供ll fail in
而不是预期的this
。
答案 2 :(得分:0)
var mystring = "the word you need is 'hello'"
var matches = mystring.match(/\'(.*?)\'/); //returns array
alert(matches[1]);
答案 3 :(得分: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;
});
<强> DEMO 强>
如果原始字符串中出现一个或多个撇号(与单引号相同),则此方法和其他方法会出错。