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

时间:2014-02-20 07:29:26

标签: javascript jquery regex

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

我需要一种快速方法将字符串从Size (ft)转换为Size_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();
});

修改

集成解决方案:

var jFormVars = {};
jFormVars[fieldName.replace(/\s+/g, '_').replace(/\W+/g, '')] = fieldValue;

1 个答案:

答案 0 :(得分:1)

  

Size (ft)类似于Size_ft

您可以使用以下内容:

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