JavaScript - 如何获取字符串中的特定值?

时间:2011-08-16 17:06:02

标签: javascript

我有一个字符串,我试图获取一个特定值。该值隐藏在字符串的中间。例如,字符串如下所示:

 Content1Save

我想要提取的值是“1”;

目前,我使用内置子字符串函数来删除字符串的左侧部分,如下所示:

MyString = "Content1Save";
Position = MyString;
Position = Position.substring(7);
alert(Position); // alerts "1Save"

我需要摆脱“保存”部分并留下1;

我该怎么做?

+++++++++++++++++++++++++++++++++++++++++ ANSWER

Position = Position.substr(7, 1);

问题

这两者之间有什么区别?

Position = Position.substr(7, 1);
Position = Position.substring(7, 1);

4 个答案:

答案 0 :(得分:2)

您可以使用substr [MDN] 方法。以下示例从索引7开始获取1个字符长的子字符串。

Position = Position.substr(7, 1);

或者,您可以使用正则表达式。

Position = /\d+/.exec(Position)[0];

答案 1 :(得分:2)

我建议调查正则表达式和群组。

正则表达式基本上是为了这个目的而构建的,内置于​​javascript中。 像Content1Save这样的正则表达式看起来像这样:

rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/

然后你可以使用以下方法提取小组:

match = rg.exec('Content1Save');
alert(match[1]);

有关正则表达式的更多信息,请访问:http://en.wikipedia.org/wiki/Regular_expression

答案 2 :(得分:1)

这在很大程度上取决于你对中间部分的规则。如果它只是一个角色,您可以使用Position = Position.substring(0, 1)。如果您尝试获取该号码,只要您删除了之前的字母,就可以使用parseInt

alert(parseInt("123abc")); //123
alert(parseInt("foo123bar")); //NaN

答案 3 :(得分:1)

如果你真的想要搜索,你通常需要使用一种名为正则表达式的东西。它们是JavaScript最好的搜索语法。

var matches = Position.match(/\d+/)
alert(matches[0])

否则你可以使用一系列substr's,但这意味着你知道字符串中的内容是什么:

MyString.substr(MyString.indexOf(1), 1);

但这有点烦人。