Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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
清理jQuery或JavaScript中的动态表单字段名_Javascript_Jquery_Regex - Fatal编程技术网

清理jQuery或JavaScript中的动态表单字段名

清理jQuery或JavaScript中的动态表单字段名,javascript,jquery,regex,Javascript,Jquery,Regex,我在单击按钮时动态生成一个表单。我使用易于阅读的字符串作为某些字段的标签,这对于Size(ft)之类的东西来说是个问题,因为它包含适合表单字段名的无效字符。这个特殊问题的解决方案大约有90%还没有完成,我对正则表达式的理解不足现在成了一个障碍 我需要一种快速的方法将字符串从Size(ft)转换为Size\u ft。保留大小写和将空格转换为下划线是我真正想要强制的。可以删除无效的非空格字符,无需替换这些字符 编辑 表单变量收集: var jFormVars = {}; jFormVars[fiel

我在单击按钮时动态生成一个表单。我使用易于阅读的字符串作为某些字段的标签,这对于
Size(ft)
之类的东西来说是个问题,因为它包含适合表单字段名的无效字符。这个特殊问题的解决方案大约有90%还没有完成,我对正则表达式的理解不足现在成了一个障碍

我需要一种快速的方法将字符串从
Size(ft)
转换为
Size\u ft
。保留大小写和将空格转换为下划线是我真正想要强制的。可以删除无效的非空格字符,无需替换这些字符

编辑

表单变量收集:

var jFormVars = {};
jFormVars[fieldName] = fieldValue;
表格汇编:

jButton.on('click', function() {
  jDiv.find('form').remove(); // Remove existing form...
  var jForm = $('<form action="path/to" method="post" />').appendTo(jDiv);
  $.each(jFormVars, function(key_i, val_i) {
    $('<input name="'+key_i+'" type="hidden" value="'+val_i+'" />').appendTo(jForm);
  });
  jForm.submit(); // Commented for debug .remove();
});
Size(ft)
到类似于
Size\u ft

您可以使用以下内容:

var name = "Size (ft)";
name = name.replace(/\s+/g, '_').replace(/\W+/g, '');

你能展示一下到目前为止你得到了什么吗?更新到包含代码。你能解释一下我在你的答案中看到了什么吗?
/\s+/g
/\W+/g
选择了什么?没关系,我明白了。因此,
/\s+/g
将全局空白替换为
\
/\W+/g
将全局替换为空字符。谢谢你的帮助@马修利基斯,没错。
\W
匹配所有非
[A-Za-z0-9\
(ASCII字母、数字或
)的内容,并将其删除。
var name = "Size (ft)";
name = name.replace(/\s+/g, '_').replace(/\W+/g, '');