2010-08-12 76 views
0

我有一個問題,只能從字符串中提取'a-zA-Z0-9-'。如何僅使用JavaScript或PHP從字符串中獲取?

示例;

如果我輸入 「貓นกห004-1กกกกก」 它告訴我只有 'A-CAT-004-1'

,如果我輸入「AAمقتطف4- 5 aaa「 - >'aa-5-4-aaa'

有什麼想法嗎?

+0

你已經試過了什麼? – 2010-08-12 16:47:54

回答

3

執行以下操作:

  • 不受任何更換[^a-zA-Z0-9_ -]。這消除了你不想要的任何字符。
  • 修剪字符串開頭和結尾的空格。
  • -替換' +'(一個或多個空格)
  • 將字符串轉換爲小寫。

至少這就是我所能猜到的。您的示例與您的問題描述不符。由於你沒有提到它,所以關於空格和小寫的部分是從你的例子中推斷出來的。

在PowerShell中,這可能如下所示:

PS> (('A cat นกห 004-1 กกกกก' -replace '[^a-zA-Z0-9_ -]').Trim() -replace ' +','-').ToLower() 
a-cat-004-1 

PS> (('aa مقتطف 4-5 aaa' -replace '[^a-zA-Z0-9_ -]').Trim() -replace ' +','-').ToLower() 
aa-4-5-aaa 

修改相應的PHP或JavaScript。都支持正則表達式和字符串函數。

0
preg_replace('/[^a-zA-Z0-9- _]/u', "", $original); 
+0

感謝您的回答! – Giffary 2010-08-12 17:35:13

相關問題