我只把这个字母,数字下划线和破折号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