使用JavaScript将字符串转换为字符数组
Convert a string into a character array using JavaScript
继续我的Javascript-更改的单选按钮
这是我的代码:
<html>
<head>
<script type="text/javascript">
function Change(radio)
{
for(i = 1; i <=3; i++)
{
if(i == radio.value)
{
setvalue = "Y";
value = setvalue;
radiovalue = radio.value;
}
else
{
setvalue = "N";
value = setvalue;
radiovalue = radio.value;
}
ChangeValue(setvalue,value);
}
function ChangeValue(setvalue,value)
{
var getvalue = value;
document.write(getvalue);
}
}
</script>
</head>
<body>
<?php
for($i = 1; $i <= 3; $i++)
{
?>
<input type="radio" name="choice" value="<?php echo $i;?>" onchange="Change(this)" /><br />
<?php
}
?>
</body>
</html>
从上面的代码中,如果我点击了第一个单选按钮,那么输出就是YNN
现在我想用逗号(YNN)分隔该值,并将结果放入一个数组("Y"、"N"、"N")中
我在ChangeValue函数中写了以下内容:
function ChangeValue(setvalue, value)
{
var getvalue = value;
document.write(getvalue);
var seperate = new array();
seperate = getvalue.spilt(",");
}
然而,上面的代码并没有将我的值放入数组中
我做错了什么?有解决这个问题的办法吗?
您必须将字符串split
作为数组中的单独字符。
var str = 'YNN'; //or whatever
var strWithComma = str.split(''); //to char array
在此之后,您可以将字符join
转换为一个新的字符串以进行显示输出。
var str = 'YNN';
var strWithComma = str.split('').join(','); //'YNN' (string) --> ['Y','N','N'] (string/char array) --> "Y,N,N" (string)
希望这能帮助
演示
JavaScriptString对象有一个split
方法,它可以执行您的请求。它根据指定的分隔符对字符串进行分区,并在每个分区的索引处返回一个数组。如果使用空白(空字符串)分隔符进行拆分,则将字符串标记为各个字符。
要将单选按钮的值作为字符串获取,可以对它们进行迭代,并检查每个单选按钮的value
属性。
var input = "YNN"
var result = input.split(''); // returns ["Y", "N", "N"]
var valStr = "";
function main() {
var radioBtns = document.getElementsByName("choice");
for (var i = 0; i < radioBtns.length; i++) {
radioBtns[i].onchange = valChange;
}
valStr = Array(radioBtns.length + 1).join("N")
}
function valChange(event) {
var changedElem = event.target;
var elemValue = changedElem.value;
var elemIdx = +elemValue - 1;
var resultStr = replaceChar(valStr, elemIdx, 'Y');
getElem("outputStr").innerHTML = resultStr;
getElem("outputArr").innerHTML = resultStr.split('');
}
function replaceChar(str, idx, chr) {
return str.substr(0, idx) + chr + str.substr(idx + chr.length);
}
function getElem(id) {
return document.getElementById(id);
}
window.onload = main;
span[id^="output"] {
border: 2px solid black;
margin: 2px;
width: 50px;
}
div {
margin-top: 7px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
Select an option:
<br />
<input type="radio" name="choice" value="1" />
<br />
<input type="radio" name="choice" value="2" />
<br />
<input type="radio" name="choice" value="3" />
<div>String Output: <span id="outputStr"> </span>
</div>
<div>Array Output: <span id="outputArr"> </span>
</div>
相关文章:
- 从指定范围创建字符数组
- 第一个字第一个字符第二个字第二个字符,一直到数组结束
- 正在转义javascript数组中的html字符
- 为什么Angularjs服务返回的是字符数组而不是对象数组
- 将组成单词的字符添加到数组的开头
- 用javascript将字符串连接到数组中
- 用Objective-C将JSON解析成C风格的字符数组
- 打破ng中的字符数组,重复并设置每个字符自己的输入标记
- 计算JavaScript中句子(数组)中字符(数组)的出现次数
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- 使用JavaScript将字符串转换为字符数组
- 从占转义字符的字符数组创建字符串
- 如何从字符数组中创建3个唯一值
- 在Chrome下,Base-64字符数组异常的无效长度
- 将正则表达式与字符数组匹配
- 通过字符数组转义字符串
- 替换字符串中的字符数组
- 如何将Javascript字符串转换为八位字节/字符数组
- 在字符数组中循环
- 使用敲除扩展程序不允许使用字符数组