2017-09-20 1 views
1

J'ai des chaînes de cettecomment remplacer une partie d'une chaîne avec une nouvelle chaîne contenant la partie javascript

var str1 = "EmployeeName1"; 

str1 peuvent être "EmployeeName2" ou "EmployeeName3" ou "EmployeeName4".

Je veux rechercher str1 pour un seul chiffre (1,2,3,4) et remplacer le seul chiffre avec une chaîne contenant le chiffre de sorte que

"EmployeeName1" -> "EmployeePosition1" 

"EmployeeName2" -> "EmployeePosition2" 

"EmployeeName3" -> "EmployeePosition3" 

Comment accéder au chiffre trouvé 1, 2, 3 et utiliser dans l'expression régulière? quelque chose comme

str1.replace([0-9]/ig, "Position?????") 
+0

Avez-vous lu la [documentation de '.replace'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter)? C'est juste là. –

Répondre

0

pas sûr que je comprends ce que vous voulez faire, mais d'utiliser l'expression régulière que vous devez faire quelque chose comme ça

r = RegExp ('[0-9]);

str1.replace (r, 'Position');

+0

la solution que vous avez suggérée ne fonctionnera pas. La sortie sera "EmployeeName1" -> "EmployeeNamePosition" "ProductName2" -> "ProductNamePosition". Merci. –

+0

Etes-vous sûr? Essayez ceci directement en ligne https://jsfiddle.net/osd4gwm4/1/ –

0
var names=["EmployeeName1","EmployeeName2","EmployeeName3"] 
var positions=["EmployeePosition1", "EmployeePosition2", "EmployeePosition3"] 

function get(name){ 

    var num=parseInt(name.replace(/^\D+/g, '')) 
    var pos=positions.map(function(el){return parseInt(el.replace(/^\D+/g, ''))}) 

    return positions[pos.indexOf(num)] 
} 

console.log(get(names[0]))