需要Javascript中正则表达式的帮助吗
该框应允许:需要Javascript中正则表达式的帮助吗,javascript,regex,Javascript,Regex,该框应允许: 大写和小写字母(不区分大小写) 数字0到9 字符,!#$%&'*+-/=?^`{|}~ 字符“.”,前提是它不是第一个或最后一个字符 您可以执行以下操作: ^[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~][a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~.]*[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~]$ 您可以执行以下操作: ^[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~][a-zA-
- 大写和小写字母(不区分大小写)
- 数字0到9
- 字符,!#$%&'*+-/=?^`{|}~
- 字符“.”,前提是它不是第一个或最后一个字符
^[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~][a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~.]*[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~]$
您可以执行以下操作:
^[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~][a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~.]*[a-zA-Z0-9,!#$%&'*+-/=?^_`{|}~]$
试着这样做:
// the '.' is not included in this:
var temp = "\\w,!#$%&'*+/=?^`{|}~-";
var regex = new RegExp("^["+ temp + "]([." + temp + "]*[" + temp + "])?$");
// ^
// |
// +---- the '.' included here
看看你的评论,很明显你不知道角色类到底做什么。不需要用逗号分隔字符。字符类:
[0-9,a-z]
匹配单个(ascii)数字或小写字母或逗号。请注意,\w
是一个“速记类”,相当于[a-zA-Z0-9.]
有关字符类的更多信息,请参见:
试试这样的方法:
// the '.' is not included in this:
var temp = "\\w,!#$%&'*+/=?^`{|}~-";
var regex = new RegExp("^["+ temp + "]([." + temp + "]*[" + temp + "])?$");
// ^
// |
// +---- the '.' included here
看看你的评论,很明显你不知道角色类到底做什么。不需要用逗号分隔字符。字符类:
[0-9,a-z]
匹配单个(ascii)数字或小写字母或逗号。请注意,\w
是一个“速记类”,相当于[a-zA-Z0-9.]
有关字符类的更多信息,请参见:
试试看
^(?!\.)(?!.*\.$)[\w.!#$%&'*+\/=?^`{|}~-]*$
说明:
^ # Anchor the match at the start of the string
(?!\.) # Assert that the first characters isn't a dot
(?!.*\.$) # Assert that the last characters isn't a dot
[\w.!#$%&'*+\/=?^`{|}~-]* # Match any number of allowed characters
$ # Anchor the match at the end of the string
试一试
说明:
^ # Anchor the match at the start of the string
(?!\.) # Assert that the first characters isn't a dot
(?!.*\.$) # Assert that the last characters isn't a dot
[\w.!#$%&'*+\/=?^`{|}~-]* # Match any number of allowed characters
$ # Anchor the match at the end of the string
我会这样做:
/^[\w!#$%&'*+\/=?^`{|}~-]+(?:\.[\w!#$%&'*+\/=?^`{|}~-]+)*$/
第一部分至少需要匹配一个非点字符,但其他所有部分都是可选的,允许它只匹配一个字符串和一个(非点)字符。每当遇到一个点时,后面必须至少有一个非点字符,因此它与以点开头或结尾的字符串不匹配
它也不会匹配包含两个或多个连续点的字符串。您没有指定这一点,但当人们要求这样的模式时,这通常是一个要求。如果要允许连续点,只需将
\.
更改为\.+
以下是我的操作方法:
/^[\w!#$%&'*+\/=?^`{|}~-]+(?:\.[\w!#$%&'*+\/=?^`{|}~-]+)*$/
第一部分至少需要匹配一个非点字符,但其他所有部分都是可选的,允许它只匹配一个字符串和一个(非点)字符。每当遇到一个点时,后面必须至少有一个非点字符,因此它与以点开头或结尾的字符串不匹配
它也不会匹配包含两个或多个连续点的字符串。您没有指定这一点,但当人们要求这样的模式时,这通常是一个要求。如果要允许连续点,只需将
\.
更改为\.+
您已经试过了吗?如果是这样的话,你也可以发布它吗?var ex=new RegExp(“[a-z,0-9,!,#,$,%,,&,*,+,-,/,=,?,^,{,,{,|,},~][a-z,0-9,!,#,$;我不知道如何创建第一个字符与[a-z]和[0-9]以及[%$#]等匹配的正则表达式。我们是否使用逗号来表示这些字符?您已经尝试过了吗?如果是这样的话,你也可以发布它吗?var ex=new RegExp(“[a-z,0-9,!,#,$,%,,&,*,+,-,/,=,?,^,{,,{,|,},~][a-z,0-9,!,#,$;我不知道如何创建一个正则表达式,其中第一个字符与[a-z]和[0-9]以及[%$#]等匹配。我们是否使用逗号来表示这些字符?我喜欢temp
技巧以避免某些重复,但它隐藏了这样一个事实:-
不再是类中的最后一个字符:你最终得到的是[~-.]
(但我不确定它的作用是什么).我试过了,结果是“无效字符范围”,因为temp中temp变量的最后一个字符是破折号,它应该被引用。之后应添加行边界,以确保第一个和最后一个“组”实际上是第一个和最后一个字符。这是我的编辑:var temp=“\\w,!\$%&'*+/=?^`{124;}~\\-”;var regex=new RegExp(“^[“+temp+”][“+temp+”]*[“+temp+”]$”);但这只适用于字符串中至少两个字符。例如,它与“a”不匹配,我喜欢temp
技巧以避免某些重复,但它隐藏了一个事实,即-
不再是类中的最后一个字符:你最终得到的是[~-.]
(虽然我不确定它是做什么的)。我尝试了,结果得到的是“无效字符范围”由于temp中temp变量的最后一个字符是破折号,因此应将其引用。之后应添加行边界,以确保第一个和最后一个“组”实际上是第一个和最后一个字符。这是我的编辑:var temp=“\\w,!\$%&'*+/=?^`{124;}~\\-”;var regex=new RegExp(“^[“+temp+”][“+temp+”]*[“+temp+”]$”);但这只适用于字符串中至少两个字符。例如,它与“a”不匹配