我只把這個字母,數字下劃線和破折號JavaScript和PHP的正則表達式只允許字母,數字,句號,星號,下劃線和破折號
var regexp = /^[a-zA-Z0-9-_]+$/;
和
$test = preg_replace('/[^a-zA-Z0-9_-]$/s', '', $ebay_username);
我需要過濾js和php的ebay用戶名。
我只把這個字母,數字下劃線和破折號JavaScript和PHP的正則表達式只允許字母,數字,句號,星號,下劃線和破折號
var regexp = /^[a-zA-Z0-9-_]+$/;
和
$test = preg_replace('/[^a-zA-Z0-9_-]$/s', '', $ebay_username);
我需要過濾js和php的ebay用戶名。
您可以使用
var regex = /^[a-zA-Z0-9-.*_]+$/; // for JS
$test = preg_replace('/[^a-zA-Z0-9-.*_]/', '', $ebay_username); // for PHP
主要思想是隻添加你需要的字符類的符號。另外,$
錨也阻止從字符串結尾的錨定匹配字符串中刪除所有不需要的字符。
關於連字符:它位於字符類內部的範圍之後,因此被解析爲文字-
符號。作爲最佳做法,它應該放在角色類的末尾,以便不必轉義它(儘管它在ElasticSearch中不起作用,它仍然應該在角色類的末尾轉義,但不在其起始處)。
很高興爲你工作。如果我的回答對你有幫助,請考慮upvoting(參見[如何在堆棧溢出?](http://meta.stackexchange.com/questions/173399/how-to-upvote-on-stack-overflow))因爲現在你有這個特權。 –
'.'和'*'是特殊符號,因此應該使用\ –
''作爲範圍來使用它逃脫它或將它移動到最後'/^[a-zA-Z0 -9 \ -_] + $ /' – Tushar
@u_mulder沒有,不在字符類 – Tushar