我有以下 javascript 不允许用户在字段中输入任何特殊字符,但我确实想破例并允许使用破折号 (-):
function Validate(txt)
{
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
}
如何修改它以将破折号添加到允许列表中?
我有以下 javascript 不允许用户在字段中输入任何特殊字符,但我确实想破例并允许使用破折号 (-):
function Validate(txt)
{
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
}
如何修改它以将破折号添加到允许列表中?
要允许破折号 ( -
),您需要做的就是将 this: 更改txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
为 this: txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
。
请注意,破折号被括在方括号中时是一个特殊字符(它表示一个范围),因此它必须放在方括号中的最后。
根据@Tim Pietzcker的评论,您也可以将其转义txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r\-]+/g, '');
或放在前面:txt.value = txt.value.replace(/[^-a-zA-Z 0-9\n\r]+/g, '');
。
在你的字符类末尾添加一个破折号(作为最后一个字符):
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
试试这个:[^a-zA-Z 0-9\n\r-]+
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
如果破折号不在决赛中,您也可以试试这个
[^a-zA-Z 0-9\n\-\r]+ //I only test this on rubular