2012-04-19 86 views
1

我正在一個西班牙網站上工作,我在該網站上進行搜索,我們不允許在鍵盤上發送這些特殊字符(!@#$%^ & *()_ + - = [] \ {} |;'':「./ <>?)。在網站的英文版本中,我們在java腳本中做了一些這樣的term.replace(/\W|_/g," ");這允許所有的字母表(大寫和小寫)以及數字和過濾。這些特殊字符如何排除特殊字符並允許西班牙文/英文字母?

以同樣的方式我應該如何把所有的英語/西班牙語字母,數字和排除這些字符

回答

2

改變正則表達式下面應該工作:

在字符類的開頭取消它

/[^\wáéíóúñ]|_/gi 

^,所以這可以被理解爲「匹配未在[a-zA-Z0-9_áÁéÉíÍóÓúÚñÑ]所有字符,並且:

/[^\wáÁéÉíÍóÓúÚñÑ]|_/g 

或者像MДΓΓБДLL在評論中指出也匹配_「。

請注意,您可以將當前的正則表達式簡化爲/[\W_]/g

+0

您可以通過使字符類不區分大小寫來簡化字符類。 '/ [^ \wáéíóññ] | _/gi' – 2012-04-19 18:35:49

+0

@MДΓΓБДLL,我不確定這是否適用於西班牙字符,謝謝! – 2012-04-19 18:39:31

+0

+1並且只是一個音符,但是'/ [\ W _]/g'更好,因爲你不需要改變,它實際上比OP的原始長度長一個字符:) – Robbie 2012-04-19 18:42:16

相關問題