2009-12-16 77 views
-1

我想寫類似的東西在javascriptPHP腳本的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); 

,但不知道從哪裏開始 - 如果沒有人在那裏,可以幫助我,請幫助!

我有以下作爲輸入:

{關鍵字1 |關鍵字2 |關鍵字3} {word 1 |字2 |字3} {試驗1,試驗2,試驗3}

腳本的目的是結合

  • [關鍵字1] [字1] [試驗1]
  • [關鍵字2] [和字2] [試驗2]
  • [關鍵字3] [和字3] [試驗3]

我不知道如何創建陣列採取的第一個串{串1}破它永遠存在的地方然後採取字符串2 {字符串2}並將其分割爲|和{string 3}並將其分解爲|

,然後對字符串

琴絃結合...

+0

請解釋功能應該做什麼以及你的問題是什麼。你到目前爲止嘗試過什麼嗎? – Gordon 2009-12-16 22:12:21

+0

與其僅僅傾銷代碼並期望某人完成所有工作,您至少可以概述您嘗試實現的目標 - 特別是因爲您的代碼甚至未被評論。 – 2009-12-16 22:12:35

回答

0

查找拆分方法和連接方法對數組

Javascript的拆分搜索和Javascript中加入谷歌(單獨的查詢)。 W3Schools的鏈接是非常有用的

+0

謝謝Amit ;-)現在就試用它 - 並讓你知道進度 – 2009-12-16 22:40:08

1

沒有輸入或輸出道理給我,但遠,這應該把你推到正確的方向:

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後會有一個數組

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

你可以對單詞和測試做同樣的事情,然後按照你認爲合適的方式組合這些。