Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在添加到选择框之前剥离字符串中的空白_Javascript_Regex - Fatal编程技术网

Javascript 在添加到选择框之前剥离字符串中的空白

Javascript 在添加到选择框之前剥离字符串中的空白,javascript,regex,Javascript,Regex,我需要你的帮助 在将数据字符串中的空白添加到选择框之前,我似乎无法去除它们 (顺便说一句,数据字符串之间的空格是经过深思熟虑的,因为我正在处理一个旧数据集,并将其慢慢转换为非空格字符串) 你是如何做到这一点的?我认为我的逻辑是正确的: <!DOCTYPE html> <html> <head> <script type="text/javascript"> function parseData() { var data = "123

我需要你的帮助

在将数据字符串中的空白添加到选择框之前,我似乎无法去除它们

(顺便说一句,数据字符串之间的空格是经过深思熟虑的,因为我正在处理一个旧数据集,并将其慢慢转换为非空格字符串)

你是如何做到这一点的?我认为我的逻辑是正确的:

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript">
function parseData() {

    var data = "1234567, 8910111, 9632587,6541237,9631478, 1010232"

    var options = data.split(",");

    var select = document.getElementById('list')
    select.innerHTML = ""

    for(var i=0; i<options.length; i++)
      select.options[i] = new Option(options[i], i);
}
</script>

</head>

<body>
<input type="button" value="load list" onclick="parseData()"/>
<br>
<select id="list"></select>
</body>

</html>

函数parseData(){
var data=“1234567189101119632587654123796314781010232”
var options=data.split(“,”);
var select=document.getElementById('列表')
select.innerHTML=“”

对于(var i=0;i不需要正则表达式,请使用
选项[i].trim()
(trim删除字符串两个位置上的所有空格(包括换行符、制表符和其他内容))

for(var i=0;i试试这个:

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript">
function parseData() {

    var data = "1234567, 8910111, 9632587,6541237,9631478, 1010232"

    var options = data.split(",");

    var select = document.getElementById('list')
    select.innerHTML = ""

    for(var i=0; i<options.length; i++)
      select.options[i] = new Option(options[i].replace(" ", ""), i); // cross browser
      // or this one
      //select.options[i] = new Option(options[i].trim(), i); // ie9+ and all other browsers
}
</script>

</head>

<body>
<input type="button" value="load list" onclick="parseData()"/>
<br>
<select id="list"></select>
</body>

</html>

函数parseData(){
var data=“1234567189101119632587654123796314781010232”
var options=data.split(“,”);
var select=document.getElementById('列表')
select.innerHTML=“”

对于(var i=0;i您可以在填充选择器时修剪空白:

options[i].replace(/^\s+|\s+$/g, '')

jsfiddle是。

我看不到任何地方您实际上在尝试去除空白?请注意,
.trim()
是与ECMAScript 5一起添加的。但是,对于像IE8和更早版本的ES3浏览器。ie7“对象不支持此属性或方法”我想它应该是跨浏览器兼容的?@JohnSmith IE7不知道Trim,没错。但是IE7现在已经有7年的历史了,市场占有率大约为1%…真的要考虑到这样一个旧浏览器并创造解决方案吗?这(如果你对每1%的浏览器都这样做的话)将使您的Javascript膨胀75%…这一个可以在运行中工作。好主意!@JohnSmith实际上我从这里偷走了修剪技术:
options[i].replace(/^\s+|\s+$/g, '')