2009-12-16 5 views
-1

Je suis en train d'écrire quelque chose de similaire en javascriptscript actuel à javascript

function Spin($txt){ 

$test = preg_match_all("#\{(.*?)\}#", $txt, $out); 

if (!$test) return $txt; 

$toFind = Array(); 
$toReplace = Array(); 

foreach($out[0] AS $id => $match){ 
$choices = explode(”|”, $out[1][$id]); 
$toFind[]=$match; 
$toReplace[]=trim($choices[rand(0, count($choices)-1)]); 
} 

return str_replace($toFind, $toReplace, $txt); 

Mais pas sûr où commencer - S'il y a quelqu'un là-bas qui peut me aider, s'il vous plaît aider!

J'ai un qui suit comme entrée:

{mot-clé 1 | mot-clé 2 | mot-clé 3} {mot 1 | mot 2 | mot 3} {Test 1, Test 2, Test 3}

Le but du script est de combiner

  • [Mot clé 1] [mot 1] [Test 1]
  • [mot-clé 2] [et mot 2] [Test 2]
  • [mot-clé 3] [et mot 3] [Test 3]

Je ne sais pas comment créer un tableau pour prendre la première chaîne {string 1} break là où il y a un | alors prenez la chaîne 2 {chaîne 2} et cassez la à | et {string 3} et le casser à |

puis concaténer les chaînes ...

+0

Veuillez expliquer ce que la fonction est censée faire et quel est votre problème. Avez-vous déjà essayé quelque chose? – Gordon

+0

Plutôt que de simplement jeter le code et d'attendre que quelqu'un fasse tout le travail, vous pouvez au moins décrire ce que vous essayez de réaliser - d'autant plus que votre code n'est même pas commenté. –

Répondre

0

Rechercher méthode split sur la chaîne

et méthode join sur les tableaux

Rechercher Javascript Split et Javascript join (requêtes distinctes) dans google. Les W3Schools liens sont très utiles

+0

Merci Amit ;-) va l'essayer maintenant - et vous permettra de connaître les progrès –

1

Ni entrée ni sortie de sens pour moi, mais bien, cela devrait vous pousser dans la bonne direction:

var input = '{keyword 1 | keyword 2 | keyword 3} {word 1 | word 2 | word 3} {test 1, test 2, test 3}'; 
var matches = input.match(/\{(.*?)\}/ig); // grab stuff in curly braces 
var choices = matches[0].replace('{', '') // remove left curly brace 
         .replace('}', '') // remove right curly brace 
         .split(' | '); // split into array 

choices sera alors un tableau

['keyword 1', 'keyword 2', 'keyword 3'] 

Vous pouvez faire la même chose pour les mots et les tests et vous pouvez ensuite les combiner comme bon vous semble.