仅显示字符串的最后四位数字
Display only the last four digit number from a String
只需要显示使用 javascript 的消息中信用卡号的最后四位数字。
例如:
var = "CARD SWIPED 1111222233334444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
1111222233334444
CREDIT SERVER NOT RESPONDING
GIFT CARD SWIPED
1111222233334444
CREDIT SERVER NOT RESPONDING
GIFT CARD SWIPED
1111222233334444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
1111222233334444"
需要预期输出为
"GIFT CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444"
如有任何帮助,我们将不胜感激。
我对Javascript了解不多,有java的背景我只能想到这个逻辑。
var str = "CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING CARD SWIPED 1111222233334444";
var res = str.match(/[0-9]+/g);
for (var i=0; i<res.length ; i++){
var lastFourStr = res[i].substring(res[i].length-4, res[i].length);
str = str.replace(res[i], lastFourStr);
}
console.log(str);
为相同的
创建了一个 Plnkr link
我觉得会有比这更好的方法
Update: you can have this to match exactly 16 digit var res = str.match(/\b\d{16}\b/g);
模式更新
Update II : var regex = str.match(/\b(\d{4}( \d{4}){3})\b/g)
This pattern will verify the number with space we can merge this with your existing pattern var res = str.match(/(\b\d{16}\b|\b(\d{4}( \d{4}){3})\b)/g);
如果数字是 var 中的任何地方。那么这段代码可以找到值--
function getDigit(){
var ex= "CARD SWIPED 1111222233334444 CREDIT SERVER
NOT RESPONDING CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING CARD SWIPED 1111222233334444";
var store=ex.split(" ");
var lastFour="";
for (var i in store) {
var temp=store[i];
var sd=parseInt(temp);
sd=sd+"";
if($.isNumeric(sd) )
{
lastFour=sd.substring((sd.length-4),sd.length);
}
}
alert(lastFour);}
只需要显示使用 javascript 的消息中信用卡号的最后四位数字。
例如:
var = "CARD SWIPED 1111222233334444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
1111222233334444
CREDIT SERVER NOT RESPONDING
GIFT CARD SWIPED
1111222233334444
CREDIT SERVER NOT RESPONDING
GIFT CARD SWIPED
1111222233334444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
1111222233334444"
需要预期输出为
"GIFT CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444
CREDIT SERVER NOT RESPONDING
CARD SWIPED
4444"
如有任何帮助,我们将不胜感激。
我对Javascript了解不多,有java的背景我只能想到这个逻辑。
var str = "CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING CARD SWIPED 1111222233334444";
var res = str.match(/[0-9]+/g);
for (var i=0; i<res.length ; i++){
var lastFourStr = res[i].substring(res[i].length-4, res[i].length);
str = str.replace(res[i], lastFourStr);
}
console.log(str);
为相同的
创建了一个 Plnkr link我觉得会有比这更好的方法
Update: you can have this to match exactly 16 digit
var res = str.match(/\b\d{16}\b/g);
模式更新
Update II :
var regex = str.match(/\b(\d{4}( \d{4}){3})\b/g)
This pattern will verify the number with space we can merge this with your existing patternvar res = str.match(/(\b\d{16}\b|\b(\d{4}( \d{4}){3})\b)/g);
如果数字是 var 中的任何地方。那么这段代码可以找到值--
function getDigit(){
var ex= "CARD SWIPED 1111222233334444 CREDIT SERVER
NOT RESPONDING CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING GIFT CARD SWIPED 1111222233334444 CREDIT SERVER NOT RESPONDING CARD SWIPED 1111222233334444";
var store=ex.split(" ");
var lastFour="";
for (var i in store) {
var temp=store[i];
var sd=parseInt(temp);
sd=sd+"";
if($.isNumeric(sd) )
{
lastFour=sd.substring((sd.length-4),sd.length);
}
}
alert(lastFour);}