我需要报告字符串末尾有空格的数据(仅尾随空格)。我尝试使用以下关键字,但无法正常工作。
[ \f\t\v]+$
\b \b
(仅当两个单词之间的空格但一个单词和一个数字之间的空格失败时才有效)有人可以帮助解决此要求。
我当前的Reg Exp:^[a-zA-Z&-',.\s]
但是\s
匹配所有空格(单词之间和字符串末尾),因此不会给出预期的结果。
答案 0 :(得分:0)
在JavaScript中:
var string1 = ' abra kadabra hokus pokus';
var string2 = 'abra kadabra hokus pokus2 ';
var string3 = ' 1abra kadabra hokus pokus ';
var string4 = 'abra kadabra hokus pokus';
var regex=/(^\s|\s$)/;
console.log(regex.test(string1));
console.log(regex.test(string2));
console.log(regex.test(string3));
console.log(regex.test(string4));
答案 1 :(得分:0)
.replace()
是您所需要的。替换为''
和g
小叶标志,该标志使.replace()
可以在第一次匹配后继续搜索。
var str1 = ` 1abra kadabra hokus pokus`;
var str2 = `abra kadabra hokus pokus2 `;
var str3 = ` 3abra kadabra hokus pokus3 `;
var str4 = `abra kadabra4 hokus pokus`;
var rgx = /^\s+|\s+$/g;
console.log(str1.replace(rgx, ''));
console.log(str2.replace(rgx, ''));
console.log(str3.replace(rgx, ''));
console.log(str4.replace(rgx, ''));
答案 2 :(得分:0)
^([a-zA-Z&-',.]+ )*[a-zA-Z&-',.]+$
该模式表示必须为零或多个单词后跟空格,然后是 word 。
^
将锚定模式以匹配值的开头,$
锚定在值的末尾。两者的组合意味着只有在整个值都匹配的情况下模式才会匹配。没有锚点,该模式将匹配包含该模式的所有内容。问题中的RegEx仅具有起始锚,因此它将匹配以您提供的模式开头的值。
假设:我用您的RegEx而不用空格作为 word 的定义;但您可能希望点逗号(。)成为单词分隔符的一部分,而不是单词的一部分。如果是这样,请用方括号将空格包裹起来,然后将那些字符移到其中。
P.S。请记住,方括号内的连字符用作范围指示符,因此[&-']
表示从与号到撇号的字符范围。如果您只是想将连字符用作字符,请使其成为方括号内的第一个字符,以免产生歧义。
还请注意,您的问题涉及数字,而您的模式未涵盖数字,因此您可能需要在两个 word 定义中都添加0-9
。