我有一个字符串,我试图获取一个特定值。该值隐藏在字符串的中间。例如,字符串如下所示:
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);
答案 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);
但这有点烦人。