我经常搜索这个,但找不到我想要做的具体例子。基本上我想通过文本框的名称(而不是id)获取文本框的值。然后我想删除所有空格,不仅仅是前导或尾随,还要删除文本中的空格。例如,这个HTML代码:
<INPUT style="TEXT-ALIGN: right;" onkeyup="fieldEdit();" onchange="fieldChange();" NAME="10010input" VALUE="4 376,73" readonly >
我有这个javascript:
var val = document.CashSheet.elements["10010input"].value;
val2 = val.replace(<someregex>, '');
alert(val2);
但我已经尝试了许多可用的正则表达式删除所有空格,但似乎只删除了前导空格和尾随空格,例如4 376,73以上的值应该在上面的警告中读作4376,73,但它没有“T。在查看这个正常的正则表达式以从文本字段中删除空格后,内容不起作用,我相信它,因为它在Web服务器上的波兰语本地化设置中填充。什么\ u char / regex exp我需要捕获一个“波兰空间”可以这么说,在ascii中它出现为20但正则表达式大多数人建议空间不能捕获它。
答案 0 :(得分:8)
只要页面中没有其他元素具有相同的名称,您就可以使用document.getElementsByName
来获取元素而无需浏览表单。要替换所有空格,只需使用带有在元素值的replace()
方法中设置的全局标志的正则表达式:
var el = document.getElementsByName("10010input")[0];
var val = el.value.replace(/\s/g, "");
alert(val);
答案 1 :(得分:6)
你需要“概括”你正在使用的正则表达式,因此它适用于所有匹配而不是第一次匹配。像这样:
val = val.replace(/\s/g, '')
注意修改regexp的'g',使其变为“general”。
答案 2 :(得分:3)
这是我用来替换空格的函数。
function removeSpaces(val) {
return val.split(' ').join('');
}
答案 3 :(得分:3)
另一个更多jQuery'ish选项:
$(".stripspaces").keyup(function() {
$(this).val($(this).val().replace(/\s/g, ""));
});
答案 4 :(得分:2)
试一下
<script language="JavaScript">
function RWS(str){
return str.replace(/^\s+/,"").replace(/\s+$/,"").replace(/\s+/g," ");
}
</script>
<form name=f1ex>
<textarea name="t2" rows="5" onChange="this.value=RWS(this.value)"></textarea>
</form>
答案 5 :(得分:1)
尝试以下操作:- 您可以尝试写入或复制粘贴包括空格在内的任何字符串,它会自动删除。
/* Not Allow Spcace Type in textbox */
function AvoidSpace(event) {
var k = event ? event.which : window.event.keyCode;
if (k == 32) return false;
}
/* Remove Blank Space Automatically Before, After & middle of String */
function removeSpaces(string) {
return string.split(' ').join('');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<input placeholder="Enter Your Text" type="text" onkeypress="return AvoidSpace(event);" onblur="this.value=removeSpaces(this.value);">
</form>
答案 6 :(得分:0)
你可以使用这个jQuery方法http://api.jquery.com/jQuery.trim/
val = $.trim(val);
或val = jQuery.trim(val);