mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862"
我想获得此字符串“9862”中的前4个数字。如何获取此字符串中的第一个数字序列。并将其存储在另一个变量中?
Javascript似乎没有识别出这个变量。我不知道为什么。 如果我这样做:
alert(mystring); //I don't get an alert pop up nor does it show any errors.
我试图存储在'mystring'变量中的文本是否有问题?
答案 0 :(得分:12)
mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862";
mystring = mystring.substring(0, 4);
alert(mystring.trim());
答案 1 :(得分:2)
你可以这样做:
mystring=mystring.substring(from,to);
或
mystring=mystring.substr(start,length);
如果开头是0(就像你的情况一样),两种方式将是相同的。
来源:
http://www.w3schools.com/jsref/jsref_substr.asp
http://www.w3schools.com/jsref/jsref_substring.asp
答案 2 :(得分:1)
var extractInts = function(str) {
r = [];
for ( var i = 1, l = str.length; i <= l; ++i ) {
if ( !isNaN(parseInt(str.substring(i-1, i),0))) {
str = str.substring(i-1);
r.push(parseInt(str, 0));
str = str.substring( parseInt(str,0).toString().length);
i = 1;
}
}
return r;
};
var str = "Hi, here is an int 1, and another 3, and finally 37";
var i_array = extractInts(str);
console.log("extractInts: " + i_array[0]); //Prints 1
上面的函数会将每个整数提取到一个数组中,因此你可以只提取第一个。
答案 3 :(得分:1)
由于问题是要找到任何字符串的前4位数字,因此也可以使用正则表达式解决方案:/\d{4}/
或/[0-9]/
。参见regex demo。
正则表达式解决方案更加灵活,因为它允许在各种情况下提取四位数:
/^\d{4}/ // To match any first 4 digits at the start of a string
/\d{4}/ // To match any first 4 digits anywhere inside a string
/word.*?(\d{4})/ // To match and capture any first 4 digits after a specific `word`
请参见下面的演示
var mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862";
console.log(mystring.match(/^\d{4}/)[0]); // The first 4 digits at the start of a string
console.log("Year: 2018".match(/\d{4}/)[0]); // The first 4 digits anywhere in a string
console.log("Year: 2012".match(/Year.*(\d{4})/)[1]); // The first 4 digits after Year
答案 4 :(得分:0)
试试这个:
mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862";
var str=mystring.substr(0,4);
alert(str);
答案 5 :(得分:0)
您可以使用功能获得前4个字符
mystring = "9862 ....... -pack size 1 - SST Unspun Label (Roll) CAT#: 9862"
mystring = mystring.substr(0,4);
或
mystring = mystring.substring(0,4);
两者都可以正常工作......试试吧