Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式的Javascript等价物_Javascript_Regex - Fatal编程技术网

Java正则表达式的Javascript等价物

Java正则表达式的Javascript等价物,javascript,regex,Javascript,Regex,我正在尝试编写一个javascript正则表达式来验证字符串 它应验证以下要求 它应该只有大写和小写的英文字母a到z、a到z ASCII:65到90、97到122和/或数字0到9 ASCII:48到57和字符-~ ASCII:45、95、126。前提是它们不是第一个或最后一个字符。它也可以有个性。点、句点、句号ASCII:46,前提是它不是第一个或最后一个字符,并且不连续出现两次或更多次 我有一个Java版本的正则表达式,如下所示 ^?=[^\W\u][\ W~-]+\.[\W*~-]+*+?J

我正在尝试编写一个javascript正则表达式来验证字符串

它应验证以下要求

它应该只有大写和小写的英文字母a到z、a到z ASCII:65到90、97到122和/或数字0到9 ASCII:48到57和字符-~ ASCII:45、95、126。前提是它们不是第一个或最后一个字符。它也可以有个性。点、句点、句号ASCII:46,前提是它不是第一个或最后一个字符,并且不连续出现两次或更多次

我有一个Java版本的正则表达式,如下所示


^?=[^\W\u][\ W~-]+\.[\W*~-]+*+?JavaScript正则表达式中没有lookbehind。幸运的是,在你的情况下,你并不需要它。替换

(?<=[^\W_])

JavaScript正则表达式中没有lookbehind。幸运的是,在你的情况下,你并不需要它。替换

(?<=[^\W_])

根据您的要求,您可以提出:

^(?!.*\.{2})(?=.*[a-zA-Z0-9]$)[a-zA-Z0-9][-~.\w]*$
在多行模式下,请参见

说明:

^确保这是生产线的开始 ?!.*.{2,}负前瞻-不连续两个点 ?=.[a-zA-Z0-9]$最后一个字符必须是以下字符之一 [a-zA-Z0-9]第一个字符必须是以下字符之一 [-~.\w]*任何这些之后的零次或多次 $确保字符串到此结束
根据您的要求,您可以提出:

^(?!.*\.{2})(?=.*[a-zA-Z0-9]$)[a-zA-Z0-9][-~.\w]*$
在多行模式下,请参见

说明:

^确保这是生产线的开始 ?!.*.{2,}负前瞻-不连续两个点 ?=.[a-zA-Z0-9]$最后一个字符必须是以下字符之一 [a-zA-Z0-9]第一个字符必须是以下字符之一 [-~.\w]*任何这些之后的零次或多次 $确保字符串到此结束
js正则表达式与其他正则表达式基本相同。你试过什么?你试过把它转换成JS吗?让我们看看你失败的尝试!使用非捕获组可能更容易?:^?=[^\W\u][\ W~-]+\.[\W~-]+*.[a-zA-Z0-9]$是我的失败尝试。它在abc上失败了…defjs正则表达式与其他正则表达式基本相同。你试过什么?你试过把它转换成JS吗?让我们看看你失败的尝试!使用非捕获组可能更容易?:^?=[^\W\u][\ W~-]+\.[\W~-]+*.[a-zA-Z0-9]$是我的失败尝试。它在abc上失败了…defi得出了相同的结论,并按如下方式重写了它^?=[^\W\u][\ W~-]+\.[\W~-]+*.[a-zA-Z0-9]$我得出了相同的结论,并按如下方式重写了它^=[^\W\u][\ W~-]+\.[W~-]+*.[a-zA-Z0-9]$这非常有效。感谢您花时间解释正则表达式。对于单个字符和2个字符的字符串,表达式失败。e、 g a 1 a11a@AGilani:请澄清您的要求,然后让我们看看我们能做些什么。请接受没有详细询问问题的歉意。刚刚在通过和失败的测试场景中添加了新项。感谢您的帮助。@AGilani:更新了答案,请参阅regex演示。现在使用多个lookahead。这非常有效。感谢您花时间解释正则表达式。对于单个字符和2个字符的字符串,表达式失败。e、 g a 1 a11a@AGilani:请澄清您的要求,然后让我们看看我们能做些什么。请接受没有详细询问问题的歉意。刚刚在通过和失败的测试场景中添加了新项。感谢您的帮助。@AGilani:更新了答案,请参阅regex演示。现在使用多个lookahead。