正则表达式匹配符号& - 。 “

时间:2016-08-29 12:35:06

标签: regex

我正在尝试在JavaScript中创建一个Regex测试,测试字符串以包含以下任何字符:

 a...z A..Z 0..9 and  & - . '

我这样做但不匹配:

^[a-zA-Z0-9&.-]

完整代码:

    <field-validator type="regex">
        <param name="expression">^[a-zA-Z0-9&.-]+$</param>
        <param name="caseSensitive">false</param>
        <message key="format.name" />
    </field-validator>

4 个答案:

答案 0 :(得分:2)

这似乎有效:

[\&\-\.']

添加字母和数字:

[a-zA-Z0-9\&\-\.']

(评论后更新)

答案 1 :(得分:2)

您正在使用XML文件中的正则表达式,因此最好的方法是使用CDATA块以在其中使用文字&'符号。两者中的任何一个都可以工作:

<param name="regex"><![CDATA[[a-zA-Z0-9'&.-]]]></param>

或(如果需要完整的字符串匹配):

<param name="regex"><![CDATA[(?s).*[a-zA-Z0-9'&.-].*]]></param>

由于您使用的是<param name="caseSensitive">false</param>,因此您甚至可能会忽略模式中的A-Za-z

请注意(?s)启用DOTALL模式,以便.可以匹配任何字符,包括换行符。

答案 2 :(得分:1)

您必须\ escape个特殊字符。

[a-z0-9\-&\.']

答案 3 :(得分:0)

如果要测试输入包含 其中一个字符,请删除正则表达式的前导^。这就是说这些角色中的任何一个都必须是第一个角色

此外,您的正则表达式不包含字符'