什么是JavaScript模式来匹配除了给定字符串以外的任何内容?
What would be the JavaScript pattern to match anything except a given string?
我需要确保给定的字符串不是"选择一个值"。就是这样,除了这个字符串,其他任何东西都应该匹配这个模式。
我一直在寻找,并尝试了许多组合在http://www.regular-expressions.info/javascriptexample.html上,但似乎没有做的伎俩。
我不能否定测试,模式需要完成这一切,因为我将把它提供给表单验证框架。如果选择包含这个文本,我将返回一个错误,等等。所以模式必须匹配其他任何东西,除了这个字符串
我尝试了很多事情,
(?!Select an account)
!(Select an account)
!(^(Select an account)$)
等等……显然,我不明白其中一些机制是如何运作的。我得到"以"开始和"以"结束,但我似乎找不到一个简单的负运算符。
由于某种原因,我到处寻找正则表达式的解释,我没有得到这个简单的用例,也许它不常见。
我怎样才能做到这一点?
谢谢!
我相信这是在问类似的问题:
正则表达式和对整个字符组求反
你可以用
^(?!Select a value).*$
匹配所有不以"Select a value "开头的内容。
与其考虑一个否定的正则表达式,不如创建一个肯定的正则表达式并否定条件:
if (! /^Select an account$/.test(mystring)) {
// String is not "Select an account"
}
但是你不需要正则表达式:
if (mystring != 'Select an account') {
// String is not "Select an account"
}
或者如果你想要"contains":
if (mystring.indexOf('Select an account') == -1) {
// String does not contain "Select an account"
}
我可能没有正确理解这一点。这样不行吗?
if (string != "Select a value") {
//code here
}
我不知道为什么你需要正则表达式来做到这一点,这就是为什么我担心我可能不明白你的问题是什么。
如果你在HTML5表单验证中处理正则表达式,并且输入的模式属性比一个精确的字符串更复杂,那么另一个解决方案如下(javascript):
function findAllNotPattern(inputField) {
var allBut1 = inputField.getAttribute("pattern")
var allBut2 = allBut1.slice(0, 1) + "^" + allBut1.slice(1)
var allButRe = new RegExp(allBut2, "g")
return allButRe
}
如果你想在纯javascript中运行,你可以使用:
findAllNotPattern(document.getElementById("inputFieldId"))
相关文章:
- jQuery中是否内置了任何字符串格式化函数
- 是否有任何内置方法可以更改JavaScript对象'的属性设置为某个值
- 使用 CasperJS 时,是否可以在执行任何内联或外部 Javascript 之前与加载页面的 DOM 进行交互
- 以字符串形式内化字符串文本
- 使用包含单引号的字符串作为内联 HTML 中的 Javascript 参数
- 找不到“”;应用程序“;模板或视图.对象{fullName:“template:application”}将不呈现任何内
- 未捕获的错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数,但得到:对象
- react router问题未捕获错误:不变冲突:元素类型无效:应为字符串(用于内置组件)
- 如何在没有任何内置函数的情况下将元素添加到数组中
- 如何基于逗号分割字符串(括号内除外)
- 如何获得元素id点击没有任何内联函数调用在javascript
- 在javascript/jquery中是否有任何内置功能来过滤邮件,如php's函数(!使用filter_var
- 在JavaScript中过滤数组,而不使用任何内置函数或新数组
- 如何删除方括号内的任何字符串
- Jquery是否有任何内置方法来单独查找可验证的元素?
- 我试图在不使用任何内置方法的情况下延迟此函数.为什么这行不通呢?
- 元素类型无效:期望是字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义
- 如何在不使用javascript中任何内置函数的情况下反转字符串
- 字符串反向内置ES6
- Angular Bootstrap-ui 是否有任何内置函数来处理打开或关闭的东西