Skip to content

Instantly share code, notes, and snippets.

@rpragana
Created June 12, 2018 15:36
Show Gist options
  • Save rpragana/4258986c56b4a93d339af0ddc2f96bfd to your computer and use it in GitHub Desktop.
Save rpragana/4258986c56b4a93d339af0ddc2f96bfd to your computer and use it in GitHub Desktop.
Expressoes Regulares 3 - replace()
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Uma página HTML</title>
</head>
<body>
<h1>Regexp replace()</h1>
<script>
var resultado="";
debugger;
// substituição simples
resultado = '09-15-50'.replace("-", ":");
resultado = '09-15-50'.replace(/-/g, ":");
resultado = "Rildo Pragana".replace(/(\w+)\s*(\w+)/,'$2, $1');
// substituição com uma função
resultado = 'ABC1234'.replace(/([^\d]*)(\d*)/,
function (match, p1, p2) {
return p1+"/"+p2;
});
// um processador de templates bastante simples
var data = {
cidade: "Recife",
autor: {
nome: "Rildo Pragana",
idade: 67
},
livro: {
titulo: "Curso Intensivo de Javascript",
ano: 2018,
editora: "Amazon"
}
};
function getProp(obj, p) {
var arr = p.split(".");
while(arr.length && (obj = obj[arr.shift()]));
return obj;
}
var replaceTags = function(templateString) {
return templateString.replace(
/\#\s*([a-zA-Z0-9\.\$_]+)\s*\#/g,
function(match, p1) {
var r = getProp(data,p1);
console.log("PROP "+p1+" = "+r);
return r
}
);
};
var tmpl = 'Tit: "#livro.titulo#", Autor: #autor.nome#, Ano: #livro.ano#';
resultado = replaceTags(tmpl);
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment