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

JavaScript-如何获取字符串中的特定值?,javascript,Javascript,我有一个字符串,试图从中获取一个指定值。值被埋藏在字符串的中间。例如,字符串如下所示: Content1Save MyString = "Content1Save"; Position = MyString; Position = Position.substring(7); alert(Position); // alerts "1Save" rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/ 我要提取的值是“1” 目前,我使用内置的substring函数来删除字符

我有一个字符串,试图从中获取一个指定值。值被埋藏在字符串的中间。例如,字符串如下所示:

 Content1Save
MyString = "Content1Save";
Position = MyString;
Position = Position.substring(7);
alert(Position); // alerts "1Save"
rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/
我要提取的值是“1”

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

 Content1Save
MyString = "Content1Save";
Position = MyString;
Position = Position.substring(7);
alert(Position); // alerts "1Save"
rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/
我需要去掉“保存”部分,剩下1

我该怎么做

+++++++++++++++++++++++++++++++++++++++++ 答复

问题:

这两者有什么区别

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

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

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

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

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

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

Position = Position.substr(7, 1);
或者,您可以使用正则表达式

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

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

Position = Position.substr(7, 1);
或者,您可以使用正则表达式

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

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

Regex基本上就是为了这个目的而构建的,并且内置于javascript中。 类似于
Content1Save
的正则表达式如下所示:

 Content1Save
MyString = "Content1Save";
Position = MyString;
Position = Position.substring(7);
alert(Position); // alerts "1Save"
rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/
然后,您可以使用以下方法提取组:

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

更多关于正则表达式的信息可以在这里找到:

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

Regex基本上就是为了这个目的而构建的,并且内置于javascript中。 类似于
Content1Save
的正则表达式如下所示:

 Content1Save
MyString = "Content1Save";
Position = MyString;
Position = Position.substring(7);
alert(Position); // alerts "1Save"
rg = /^[A-Za-z]*([0-9]+)[A-Za-z]*$/
然后,您可以使用以下方法提取组:

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

关于正则表达式的更多信息可以在这里找到:

如果您确实在尝试搜索,您通常需要使用称为正则表达式的东西。它们是JavaScript可用的最佳搜索语法

var matches = Position.match(/\d+/)
alert(matches[0])
否则,您可以使用一系列substr,但这意味着您知道要从字符串中开始的内容:

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

但这有点烦人。

如果你真的在尝试搜索,你通常需要使用正则表达式。它们是JavaScript可用的最佳搜索语法

var matches = Position.match(/\d+/)
alert(matches[0])
否则,您可以使用一系列substr,但这意味着您知道要从字符串中开始的内容:

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

但这有点烦人。

您知道您将从字符串中间保存一个数字,周围只有字母吗?字符串是否遵循任何常规模式?字符串中的数字将始终是1、2、3或4。关于您的更新,查看一下,您是否知道您将从字符串中间保存一个数字,该数字周围只有字母?字符串是否遵循任何常规模式?字符串中的数字将始终是1、2、3或4。关于您的更新,请查看并