我regex从json对象获取字符串(是的,它的动态,将始终是字符串)我想用文本框值测试它.
但即使我传递有效的输入文本,它也不会通过regex条件
代码:
var pattern = "/^[A-Za-z\s]+$/";
var str = "Some Name";
pattern = new RegExp(pattern);
if(pattern.test(str))
{
alert('valid');
}
else
{
alert('invalid');
}
Run Code Online (Sandbox Code Playgroud)
par*_*ent 13
两个问题:
更正代码:
var pattern = "^[A-Za-z\\s]+$";
var str = "Some Name";
pattern = new RegExp(pattern);
if(pattern.test(str))
{
alert('valid');
}
else
{
alert('invalid');
}
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/wn9scv3m/3/
使用regex-parser:
const parseRegex = require("regex-parser")
parseRegex("/^hi$/g")
// => /^hi$/g
Run Code Online (Sandbox Code Playgroud)
这应该适合你(jsfiddle: http: //jsfiddle.net/wn9scv3m/9/):
var pattern = /^[(\w)|(\s)]+$/; // using / regex constructor...
var altPattern = "^[(\w)|(\s)]+$"; // using quotes and new RegEx() syntax...
var regex = new RegExp(altPattern);
var str = "Some Name";
if (str.match(pattern) != null && regex.test(str) != null) { // check using both methods
alert('valid');
}
else {
alert('invalid');
}
Run Code Online (Sandbox Code Playgroud)
据我在https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions中看到的,您正在组合两种方法来声明 RegExp。如果您使用字符串变体,则不要在表达式前后包含“/”字符,例如:
var pattern = "^[A-Za-z\s]+$";
pattern = new RegExp(pattern);
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢 /regexp/ 形式,请使用不带引号的形式:
pattern = /^[A-Za-z\s]+$/;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3729 次 |
| 最近记录: |