Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function formatPattern(value, pattern) {
- if (value){
- var characters = pattern.replace(getWildcardRegex(), ""); // removes all wild cards
- value = value.replace(new RegExp("["+characters+"]", 'gi'), ""); // removes all non wildcard characters in pattern
- if (value){
- return replace(value, pattern);
- }
- }
- }
- function replace(remainingString, pattern) {
- var index = pattern.search(getWildcardRegex());
- pattern = pattern.split('');
- if (index > -1){
- for(var i = 0; i < wildcards.length; i ++){
- if (wildcards[i].wildcard == pattern[index]){ // find correct wildcard in array
- if (wildcards[i].isValid(remainingString.charAt(0))){
- pattern[index] = remainingString.charAt(0);
- } else {
- pattern[index] = ""; // removes character at index
- }
- remainingString = remainingString.substring(1, remainingString.length);
- }
- }
- if (remainingString.length > 0){
- return replace(remainingString, pattern.join(''));
- } else {
- return pattern.join('').substring(0, index+1);
- }
- }
- return pattern.join('');
- }
- var wildcards = [
- {
- wildcard: "9",
- isValid: function(value){
- if (!isNaN(parseInt(value))){
- return true;
- } else {
- return false;
- }
- }
- },
- {
- wildcard: "z",
- isValid: function(value){
- if (value.match(/[a-z]/i)){
- return true;
- } else {
- return false;
- }
- }
- },
- {
- wildcard: "*",
- isValid: function(value){
- return true; // * = everything
- }
- }
- ]
- function getWildcardRegex(){
- var retValue = "";
- for(var i = 0; i < wildcards.length; i ++){
- retValue += wildcards[i].wildcard;
- }
- return new RegExp("[" + retValue + "]", 'gi');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement