将正则表达式字符串转换为javascript中的正则表达式对象
convert regex string to regex object in javascript
我正在从json对象中获取regex
字符串(是的,它是动态的,并且将始终是字符串),我想用文本框值来测试它。
但即使我通过了有效的输入文本,它也不会通过regex
条件
代码:
var pattern = "/^[A-Za-z's]+$/";
var str = "Some Name";
pattern = new RegExp(pattern);
if(pattern.test(str))
{
alert('valid');
}
else
{
alert('invalid');
}
Fiddle:-http://jsfiddle.net/wn9scv3m/
两个问题:
- 您需要转义反斜杠
- 您需要删除字符串开头和末尾的斜杠
更正代码:
var pattern = "^[A-Za-z''s]+$";
var str = "Some Name";
pattern = new RegExp(pattern);
if(pattern.test(str))
{
alert('valid');
}
else
{
alert('invalid');
}
http://jsfiddle.net/wn9scv3m/3/
使用regex-parser
:
const parseRegex = require("regex-parser")
parseRegex("/^hi$/g")
// => /^hi$/g
这应该对您有效(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');
}
据我所见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions您正在组合两个方法来声明RegExp。如果您使用的是字符串变体,则不要在表达式前后包含"/"字符,例如:
var pattern = "^[A-Za-z's]+$";
pattern = new RegExp(pattern);
如果你更喜欢/regexp/格式,那么就不用引号了:
pattern = /^[A-Za-z's]+$/;
这应该能在中工作
var str1 = "SomeName"; //true
var str2 = "SomeName123"; //false
function MyRegex(val) {
var pattern = /^[A-Za-z's]+$/;
var match = pattern.exec(val);
return match !== null && match[0] === val;
}
alert(MyRegex(str1));
alert(MyRegex(str2));
相关文章:
- JavaScript正则表达式文本与RegExp对象
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何让我的正则表达式代码在我的dojo cellWidget对象上工作
- 使用正则表达式对象进行Javascript字符串验证
- 如何使用正则表达式查找对象成员名称
- 从对象键创建正则表达式
- 如何在正则表达式对象中使用单词边界
- 遍历包含正则表达式的 JavaScript 对象变量
- 使用正则表达式键匹配 Javascript 循环遍历对象获取值
- 如何在从 javascript 中的 json 对象中提取字符串时保留转义序列.(字符串实际上是正则表达式模式)
- Javascript 数组对象用正则表达式替换数据
- 使用正则表达式时出现 Javascript 错误 - 对象不支持此属性或方法
- 使用 JavaScript 新正则表达式对象作为包含匹配字符集的括号
- 正则表达式的 JS 对象类型返回为 NaN
- JavaScript对象具有具有特定正则表达式模式的键
- 使用对象属性构造正则表达式时,限定符无效
- 将正则表达式字符串转换为javascript中的正则表达式对象
- 如何使用变量动态构建正则表达式对象
- 使用正则表达式而不创建正则表达式对象-JavaScript
- 其中记录了JavaScript正则表达式对象测试方法