2016-05-04 25 views
-4

我在Cloudant中構建了一個搜索索引。我用trim()刪除字符串中的空格。但是,它不起作用。雲中的JS trim()函數

我該怎麼做?

更新:

我有一個JSON對象

... 
    "attributeArray": [ 
     { 
     "name": "this is a  web  authentication" 
     } 
    } 
... 

我已經提取的 「名」 成功。我想刪除「名稱」中的空格,然後爲文檔建立一個搜索索引。假設「名稱」已被提取。

var index=name.trim(); 
Index("default", index); 

當我查詢,系統顯示:

{ 
"id": "06xxxx", 
"fields": [ 
" this is a  web  authentication" 
] 
} 

我的結論是功能trim()不起作用。

PS:一個小問題,所以它不需要解釋整個事情。

+0

兩個負面的問題,但沒有人試過。 – Hong

+1

你的意思是「它不工作」是什麼意思?順便說一句:現在是3個「負面點」。 –

+0

我建議你閱讀[doc for'.trim()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim),然後顯示我們是一個確切的例子,說明它沒有做到文檔所說的那樣。 downvotes可能是因爲你只是沒有閱讀'.trim()'所做的文檔,現在聲稱在沒有描述你的測試用例的情況下它不起作用。對於堆棧溢出,這是一個寫得不好的問題。由於您可能是新手,請閱讀[我如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)。 – jfriend00

回答

3

根據定義,trim()函數將僅刪除字符串中的前導和尾隨空白,這可能不是您在此方案中需要的。

如果要刪除所有一般的白色空間,您可以考慮通過replace()功能使用正則表達式替換:

// This will remove all white-space from your input string 
var output = input.replace(/\s/g,''); 

你更新後

您的代碼看起來有點更像是要用單個空間替換空間的多個實例,仍然可以通過與原始表達式稍微不同的表達式來完成:

// This replaces multiple repeated instances of a space with a single 
var trimmedName = name.replace(/\s+/g,' '); 
Index("default", trimmedName); 
+0

爲什麼修剪()不起作用,即使語法是好的。 – Hong

+0

您是否有一些您的輸入和您期望作爲輸出返回的示例? –

+0

我更新了帖子。 – Hong

1

TRIM()函數將只刪除開頭和結尾的字符串,將字符串加時賽詞與詞之間刪除空格

+0

這是正確的,謝謝你。 – Hong

1

你要確保你的trim()後重新分配您的變量的空白?

var test = " Hello World "; 

test = test.trim(); // "Hello World"