我想创建一个简单的 javascript“生活游戏”实现。我希望用户能够输入他的结构..
所以我们有一个textaeria,用户用类似的东西填充它
*···
*·*·
**··
如何从这样的输入宽度4
、高度3
和数组字段中获取
100010101100
如何通过javascript从文本输入中获取此类数据?
我想创建一个简单的 javascript“生活游戏”实现。我希望用户能够输入他的结构..
所以我们有一个textaeria,用户用类似的东西填充它
*···
*·*·
**··
如何从这样的输入宽度4
、高度3
和数组字段中获取
100010101100
如何通过javascript从文本输入中获取此类数据?
使用正则表达式将每一行拆分为一个数组,然后遍历生成的数组,遍历位于该索引上的字符串上的每个字符,检查其是否为 * 并将结果字符串添加 1 或 0 。到结果字符串和 wham,你会得到你的结果。
所以字符 183 而不是句号?
var s = document.getElementById(..);
//remove all whitespace, replace *, replace ·
s = s.replace(/\s+/gm, "").replace(/\*/g, "1").replace(/\xb7/g, "0");
如果有一段时间使用\
。代替\xb7
目前还不清楚,但如果你想把它作为一个阵列棒.split("");
放在最后。
编辑宽度/高度
var width = (s + "\r\n").indexOf("\r\n"); //position of 1st new line
var height = s.split("\r\n").length; //count of lines
使用 jquery 创建 1 个字符串:
$("#test").val().replace(/·/g,'0').replace(/\*/g,'1').replace(/\n\r?/g,'');
演示:http: //jsfiddle.net/pBauP/
另一个创建包含单元格数组的行数组的示例,这是您想要的宽度和高度吗?
var results = [];
var arr = $("#test").val().split('\n');
$.each(arr, function() {
var row = this.replace(/·/g,'0').replace(/\*/g,'1').split("");
results.push(row);
});
演示2:http : //jsfiddle.net/3qqkY/