我正在尝试从textarea中删除空格。以下代码不附加我从两个下拉列表中选择的文本。谁能告诉我哪里出错了?我正在尝试删除字符串中的多个空格,是否可以使用相同的?不太了解正则表达式。请帮忙。
function addToExpressionPreview() {
var reqColumnName = $('#ddlColumnNames')[0].value;
var reqOperator = $('#ddOperator')[0].value;
var expressionTextArea = document.getElementById("expressionPreview");
var txt = document.createTextNode(reqColumnName + reqOperator.toString());
if (expressionTextArea.value.match(/^\s+$/) != null)
{
expressionTextArea.value = (expressionTextArea.value.replace(/^\W+/, '')).replace(/\W+$/, '');
}
expressionTextArea.appendChild(txt);
}
答案 0 :(得分:1)
> function addToExpressionPreview() {
> var reqColumnName = $('#ddlColumnNames')[0].value;
> var reqOperator = $('#ddOperator')[0].value;
您也可以使用document.getElementById()
来解决上述问题。
> var expressionTextArea = document.getElementById("expressionPreview");
> var txt = document.createTextNode(reqColumnName + reqOperator.toString());
reqOperator
已经是一个字符串,无论如何,使用+运算符会将它强制转换为String,除非所涉及的所有表达式或标识符都是Numbers。
> if (expressionTextArea.value.match(/^\s+$/) != null) {
这里不需要match
。我好像在试图查看值是否都是空白,所以你可以使用:
if (/^\s*$/.test(expressionTextArea.value)) {
// value is empty or all whitespace
由于您多次重复使用expressionTextArea.value
,因此将它存储为变量会更方便,最好使用短名称。
> expressionTextArea.value = (expressionTextArea.value.replace(/^\W+/,
> '')).replace(/\W+$/, '');
这将替换字符串末尾的一个或多个非单词字符。如果你想用一个替换字符串中任何地方的多个空白字符,那么(注意在此处发布包装):
expressionTextArea.value = expressionTextArea.value.
replace(/^\s+/,'').
replace(/\s+$/, '').
replace(/\s+/g,' ');
请注意,\s
与所有浏览器中相同范围的“空白”字符不匹配。但是,对于表单元素值的简单使用,它可能就足够了。
答案 1 :(得分:0)
空格由\s
匹配,所以
expressionTextArea.value.replace(/\s/g, "");
应该为你做的伎俩。
在您的示例中,^\W+
仅匹配非word character
的前导字符,^\s+$
仅匹配整个字符串为空格的情况。要进行全局替换(不仅仅是第一场比赛),您需要使用g
修饰符。
答案 2 :(得分:0)
参考this链接,您可以了解一些信息。试试.replace(/ /g,"UrReplacement");
编辑:或.split(' ').join('UrReplacement')
如果你厌恶REs