2010-08-12 83 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

相关问题