多年来,我慢慢开发了一个正则表达式,可以正确验证MOST电子邮件地址,假设他们不使用IP地址作为服务器部分.
我在几个PHP程序中使用它,它大部分时间都可以工作.但是,我不时会遇到使用它的网站遇到问题的人,我最终不得不进行一些调整(最近我意识到我不允许使用4字符TLD).
验证电子邮件的最佳正则表达式是什么?
我已经看到了几个使用函数的解决方案,这些函数使用了几个较短的表达式,但我宁愿在一个简单的函数中使用一个长复杂表达式,而不是在一个更复杂的函数中使用几个短表达式.
我看过Stack Overflow(替换字符......呃,JavaScript如何不遵循关于RegExp的Unicode标准等)并且没有真正找到问题的具体答案:
How can JavaScript match for accented characters (those with diacritical marks)?
我强迫UI中的字段匹配格式:( last_name, first_name 最后[逗号空间]),我想提供对变音符号的支持,但显然在JavaScript中它比其他语言/平台要困难一些.
这是我的原始版本,直到我想添加变音支持:
/^[a-zA-Z]+,\s[a-zA-Z]+$/
目前我正在讨论增加支持的三种方法之一,所有这些我都经过测试和工作(至少在某种程度上,我真的不知道第二种方法的"范围"是什么).他们来了:
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ";
// Build the full regex
var regex = "^[a-zA-Z" + accentedCharacters + "]+,\\s[a-zA-Z" + accentedCharacters + "]+$";
// Create a RegExp from the string version
regexCompiled = new RegExp(regex);
// regexCompiled = /^[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]+,\s[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]+$/
Run Code Online (Sandbox Code Playgroud)
accentedCharacters..字符类,以获得更简单的表达式:var regex = /^.+,\s.+$/;
Run Code Online (Sandbox Code Playgroud)
something, something.那我觉得好吧......要匹配A到Z,我们将使用正则表达式:
[A-ZA-Z]
如何让正则表达式匹配用户输入的utf8字符?例如中文单词,如环保部
我想要一个正则表达式来匹配像twitter中那样的简单主题标签(例如#someword).我希望它也能识别非标准字符(如西班牙语,希伯来语或中文字符).
这是我最初的正则表达式:(^|\s|\b)(#(\w+))\b
- >但它不识别非标准字符.
然后,我尝试使用XRegExp.js,但是运行得太慢了.
有关如何做的任何建议?
我是android的完全初学者所以请原谅我,如果我的问题是愚蠢的.基本上我想要检测的是#的意思,例如,如果用户输入abc #hello则只会#hello在文本更改中被烘烤.所以我试图从github代码中获取引用并且能够打印所有#标签,但是我想要只覆盖当前标签意味着如果用户正在键入,abc #hello #hi #bye //here current tag is #bye那么我想只将当前标签干杯到飞行中出现的空间.我想知道如何修改我的代码以获得所需的结果.
码:
editTxt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(s.length()>0)
showTags(s);
}
@Override
public void afterTextChanged(Editable s) {
}
});
//Methods
private void showTags(CharSequence text) {
int startIndexOfNextHashSign;
int index = 0;
while (index < text.length()- 1){
sign = text.charAt(index); …Run Code Online (Sandbox Code Playgroud) regex ×4
javascript ×2
unicode ×2
android ×1
cjk ×1
email ×1
hashtag ×1
java ×1
twitter ×1
validation ×1