如何从用户输入中拆分逗号分隔的字符串

Posted

技术标签:

【中文标题】如何从用户输入中拆分逗号分隔的字符串【英文标题】:How to split a comma separated string from user input 【发布时间】:2014-05-29 03:46:32 【问题描述】:

我希望能够让用户在输入框中列出内容(通过警报出现),然后在提交后让这些选项替换字符串中的默认文本。它们也需要在每个逗号之后分开,并且列出每件事,循环应该在运行时将文本粘贴到其中,并与列表中的其余部分重复。

这可能吗?

这就是我现在正在做的事情:http://jsbin.com/nivah/1,它只允许你输入一件事。因为如果你用逗号输入几个选项​​,它包括逗号和链接中的所有选项,显然不会返回任何内容。

这是我的 javascript 代码。

var link0='http://www.twitter.com/';
var user=['bob', 'joe', 'tony'];
var user = prompt("I want to message:", user);

var link3=".tumblr.com";
var iframe = document.getElementById("username");
    var opt = (link0 + user + link3);
    var el = document.createElement("iframe");
for(var i = 0; i < user.length; i++) 
    el.setAttribute("src", opt); 
    iframe.appendChild(el);

var array = user.split(',');

有人知道我做错了什么吗?

我之前让它根据我提交的内容重复循环,但它是通过在 iframe 中使单词的每个字母成为其自己的链接来做到这一点的。这不是我想要的,但与用户输入文本的循环交互一样接近。

【问题讨论】:

看到这个答案:***.com/questions/3559883/… 为什么user.split()在代码底部而不是prompt之后? 别忘了接受适合你的答案 【参考方案1】:

您需要在代码中的正确位置使用 split()。此外,您的逻辑不起作用,您需要在 for 循环中创建每个 iframe,就像这样 -

工作演示 - http://jsbin.com/ciquvatu/1/edit

var link0='http://www.tumblr.com/ask_form/';
var user = ['killthemwithyourawesome', 'barrowman-ilove', 'down-with-these-ships'];
var user = prompt("I want to message:", user);

var link3=".tumblr.com";
var array = user.split(',');

for(var i = 0; i < array.length; i++) 
    var iframe = document.getElementById("username");
    var opt = (link0 + array[i] + link3);
    var el = document.createElement("iframe");
    el.setAttribute("src", opt); 
    iframe.appendChild(el);

这应该可以满足您的需求。

【讨论】:

天啊!非常感谢。我有一种感觉,我把事情完全搞砸了。它快把我逼疯了!再次感谢您! 不客气 :) 但您应该始终评估您的代码,例如 - 您知道要拆分用户输入然后创建 iframe,那么为什么在创建 iframe 后会发生拆分。 确实有道理。嗬!大多数时候我有点笨。那我还不太熟悉Javascript。仍然在学习。 :D 非常感谢您的提示。 :) 希望我记得。

以上是关于如何从用户输入中拆分逗号分隔的字符串的主要内容,如果未能解决你的问题,请参考以下文章

Razor输入框逗号分隔转换

ActionScript 3 AS3修剪逗号分隔字符串(例如,用户输入的逗号分隔关键字列表)

将逗号分隔的字符串拆分为数组?

如何将逗号分隔的字符串拆分为字符串列表?

AS3修剪逗号分隔的字符串(例如,由用户输入的逗号分隔的关键字列表)

用逗号作为小数分隔符解析双精度