草庐IT

javascript - RegExp 和 String 组合导致 Chrome 崩溃

我有以下RegExp来验证电子邮件地址:^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$在基本电子邮件上运行它效果很好:/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/.test('dave@the-taylors.org');但是在长字符串上运行它会使Chrome崩溃:/^[A-Za-z0-9](([_\.\

javascript - 用于检查字符串是否包含至少 3 个字母数字字符的最有效正则表达式

我有这个正则表达式:(?:.*[a-zA-Z0-9].*){3}我用它来查看字符串中是否至少包含3个字母数字字符。它似乎有效。它应该匹配的字符串示例:'a3c''_0_c_8_''99d'但是,我需要它更快地工作。有没有更好的方法使用正则表达式来匹配相同的模式?编辑:我最终使用了这个regex出于我的目的:(?:[^a-zA-Z0-9]*[a-zA-Z0-9]){3}(不需要修饰符) 最佳答案 最有效的正则表达式方法是使用principleofcontrast,即并排使用相反的字符类。这是一个正则表达式,可用于检查字符串是否包含3个

javascript - 电子邮件地址验证的最佳做法(包括 gmail 地址中的 +)

我知道这里有很多关于电子邮件验证和特定RegEx的问题。我想知道关于使用username+anythingelse@gmail.com技巧(detailshere)验证电子邮件的最佳做法是什么。我当前用于JavaScript验证的RegExp如下,但它不支持句柄中额外的+:/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/是否有任何其他服务支持额外的+?我应该在地址中允许使用+还是应该更改RegEx以仅允许使用gmail.com或googlemail.com的电子邮件作为域?如果是这样,修改后的RegEx会是什么?更

javascript - val.replace(/[^a-zA-Z_-0-9]/g, '' ) 产生 SyntaxError : invalid range in character class

我需要替换所有与a-zA-Z_-0-9范围不匹配的字符。所以我做了val.replace(/[^a-zA-Z_-0-9]/g,'')但得到了错误。我怎么能咬这个?谢谢 最佳答案 如果要在字符类中包含减号“-”,则必须将其放在范围末尾:val.replace(/[^a-zA-Z_0-9-]/g,'') 关于javascript-val.replace(/[^a-zA-Z_-0-9]/g,'')产生SyntaxError:invalidrangeincharacterclass,我们在Sta

xml - cvc 模式有效 : Value 'A' is not facet-valid with respect to pattern '^[A-Za-z]?$' for type 'whatever'

这是验证失败的特定XML标记:A该标签的XSD:我得到的错误:cvc-pattern-valid:Value'A'isnotfacet-validwithrespecttopattern'^[A-Za-z]?$'fortype'MiddleInitial'.我正在使用的验证器:http://tools.decisionsoft.com/schemaValidate/正则表达式看起来不错。^匹配开头、$、结尾、?是字母A-Z或a-z的零次或一次。有什么想法吗? 最佳答案 来自w3规范RegularExpressions(Appendi

c++ - 是否可以修复 Windows 头文件(winnt.h、windefs.h)以便它们可以用/Za 编译?

我正在为多个平台(Windows、Linux、MacOSX)开发应用程序,我想确保我的代码符合ISOC++标准。在Linux和Mac上,它是通过-pedantic-errors标志实现的,在Windows上是通过/Za标志(禁用语言扩展)实现的。问题是,某些Windowsheader不符合C++(并且以一种愚蠢的方式,没有什么大不了的-大多数错误是'$':unexpectedinmacrodefinition,'__forceinline'notpermittedon数据声明和类似的废话)。您认为可以修复header吗?有人试过吗? 最佳答案

java - 为什么 Java 正则表达式在 Linux 和 Windows 上的行为不同?

这是一个普遍的问题。我想知道它们的行为是否有所不同以及原因,还是只有当我们做错事时它们的行为才会不同?这就是我目前正在努力解决的问题。我有这个正则表达式:CLASS_NAME_VALIDATION_REGEX="([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*";我这样使用它:Pattern.matches(CLASS_NAME_VALIDATION_REGEX,qualifiedClassName)所以在Unix/Linux下matches()返回true对于java.io.Serializable在Windows上它返回f

c# - C#中的正则表达式运行缓慢

过去一周我一直在用正则表达式做一些工作并取得了很大的进步,但是,我仍然相当n00b。我有一个用C#编写的正则表达式:stringisMethodRegex=@"\b(public|private|internal|protected)?\s*(static|virtual|abstract)?"+@"\s*(?[a-zA-Z\_1-9]*)\s(?[a-zA-Z\_1-9]+)\s*\"+@"((?(([a-zA-Z\[\]\_1-9]*\s*[a-zA-Z_1-9]*\s*)[,]?\s*)+)\)";IsMethodRegex=newRegex(isMethodRegex);出于某

c# - 使用正则表达式解析签名,具有 "fun"和数组返回值

我有这个[讨厌的]正则表达式来捕获一个VBA过程签名,其中包含一个桶中的所有部分:publicstaticstringProcedureSyntax{get{return@"(?:(?Friend|Private|Public)\s)?(?:(?Sub|Function|Property\s(Get|Let|Set)))\s(?(?:[a-zA-Z][a-zA-Z0-9_]*)|(?:\[[a-zA-Z0-9_]*\]))\((?.*)?\)(?:\sAs\s(?(((?[a-zA-Z][a-zA-Z0-9_]*))\.)?(?([a-zA-Z][a-zA-Z0-9_]*)|\[[a-

javascript - 网址正则表达式验证

我做到了:/^(http[s]?://){0,1}(www.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}并用验证器检查了它,但在我的页面上它不起作用:varre=/^(http[s]?://){0,1}(www.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1};if(!re.test(url)){alert("urlerror");returnfalse;}我收到这个错误WebpageerrordetailsUserAgent:Mozilla/4.0(compatible;MSIE8.0;Win