2009-12-16 74 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'] 

你可以对单词和测试做同样的事情,然后按照你认为合适的方式组合这些。