Php regex to javascript regex


Php regex to javascript regex

我写了一个正则表达式来验证php中的名称字段,

/^['pL's]+$/u及其按我预期工作 EX:preg_match("/^['pL's]+$/u", "test#");

现在我需要在 cliend 端进行相同的验证。 为此,我需要将其转换为javascript regex.我试过了

/^['pL's]+$/u.test(filed_value)

它不能作为php工作,我收到控制台错误。如何将 php 正则表达式转换为 JavaScript 正则表达式?

这应该是错误的。

echo preg_match("/^['pL's]+$/u", "abc%$");

应该接受这些

echo preg_match("/^['pL's]+$/u", "abc");
echo preg_match("/^['pL's]+$/u", "ab c");
echo preg_match("/^['pL's]+$/u", "abåcå");

您可以简单地使用以下regex

^(['w'u00e6'u00f8'u00e5's]+)$

所以你的代码看起来像

/^(['w'u00e6'u00f8'u00e5's]+)$/g.test(filed_value)

为什么需要使用上面的正则表达式是因为 Javascript 不支持u修饰符,也不支持'pL

你可以使用 Javascript 的XregExp库来简单地使用 unicode。

在 JS 中,您可以使用以下代码,该代码使用保存所有 Unicode 字母范围的变量pL变量(源):

var pL = "a-zA-Z''xAA''xB5''xBA''xC0-''xD6''xD8-''xF6''xF8-''u02C1''u02C6-''u02D1''u02E0-''u02E4''u02EC''u02EE''u0370-''u0374''u0376''u0377''u037A-''u037D''u037F''u0386''u0388-''u038A''u038C''u038E-''u03A1''u03A3-''u03F5''u03F7-''u0481''u048A-''u052F''u0531-''u0556''u0559''u0561-''u0587''u05D0-''u05EA''u05F0-''u05F2''u0620-''u064A''u066E''u066F''u0671-''u06D3''u06D5''u06E5''u06E6''u06EE''u06EF''u06FA-''u06FC''u06FF''u0710''u0712-''u072F''u074D-''u07A5''u07B1''u07CA-''u07EA''u07F4''u07F5''u07FA''u0800-''u0815''u081A''u0824''u0828''u0840-''u0858''u08A0-''u08B2''u0904-''u0939''u093D''u0950''u0958-''u0961''u0971-''u0980''u0985-''u098C''u098F''u0990''u0993-''u09A8''u09AA-''u09B0''u09B2''u09B6-''u09B9''u09BD''u09CE''u09DC''u09DD''u09DF-''u09E1''u09F0''u09F1''u0A05-''u0A0A''u0A0F''u0A10''u0A13-''u0A28''u0A2A-''u0A30''u0A32''u0A33''u0A35''u0A36''u0A38''u0A39''u0A59-''u0A5C''u0A5E''u0A72-''u0A74''u0A85-''u0A8D''u0A8F-''u0A91''u0A93-''u0AA8''u0AAA-''u0AB0''u0AB2''u0AB3''u0AB5-''u0AB9''u0ABD''u0AD0''u0AE0''u0AE1''u0B05-''u0B0C''u0B0F''u0B10''u0B13-''u0B28''u0B2A-''u0B30''u0B32''u0B33''u0B35-''u0B39''u0B3D''u0B5C''u0B5D''u0B5F-''u0B61''u0B71''u0B83''u0B85-''u0B8A''u0B8E-''u0B90''u0B92-''u0B95''u0B99''u0B9A''u0B9C''u0B9E''u0B9F''u0BA3''u0BA4''u0BA8-''u0BAA''u0BAE-''u0BB9''u0BD0''u0C05-''u0C0C''u0C0E-''u0C10''u0C12-''u0C28''u0C2A-''u0C39''u0C3D''u0C58''u0C59''u0C60''u0C61''u0C85-''u0C8C''u0C8E-''u0C90''u0C92-''u0CA8''u0CAA-''u0CB3''u0CB5-''u0CB9''u0CBD''u0CDE''u0CE0''u0CE1''u0CF1''u0CF2''u0D05-''u0D0C''u0D0E-''u0D10''u0D12-''u0D3A''u0D3D''u0D4E''u0D60''u0D61''u0D7A-''u0D7F''u0D85-''u0D96''u0D9A-''u0DB1''u0DB3-''u0DBB''u0DBD''u0DC0-''u0DC6''u0E01-''u0E30''u0E32''u0E33''u0E40-''u0E46''u0E81''u0E82''u0E84''u0E87''u0E88''u0E8A''u0E8D''u0E94-''u0E97''u0E99-''u0E9F''u0EA1-''u0EA3''u0EA5''u0EA7''u0EAA''u0EAB''u0EAD-''u0EB0''u0EB2''u0EB3''u0EBD''u0EC0-''u0EC4''u0EC6''u0EDC-''u0EDF''u0F00''u0F40-''u0F47''u0F49-''u0F6C''u0F88-''u0F8C''u1000-''u102A''u103F''u1050-''u1055''u105A-''u105D''u1061''u1065''u1066''u106E-''u1070''u1075-''u1081''u108E''u10A0-''u10C5''u10C7''u10CD''u10D0-''u10FA''u10FC-''u1248''u124A-''u124D''u1250-''u1256''u1258''u125A-''u125D''u1260-''u1288''u128A-''u128D''u1290-''u12B0''u12B2-''u12B5''u12B8-''u12BE''u12C0''u12C2-''u12C5''u12C8-''u12D6''u12D8-''u1310''u1312-''u1315''u1318-''u135A''u1380-''u138F''u13A0-''u13F4''u1401-''u166C''u166F-''u167F''u1681-''u169A''u16A0-''u16EA''u16F1-''u16F8''u1700-''u170C''u170E-''u1711''u1720-''u1731''u1740-''u1751''u1760-''u176C''u176E-''u1770''u1780-''u17B3''u17D7''u17DC''u1820-''u1877''u1880-''u18A8''u18AA''u18B0-''u18F5''u1900-''u191E''u1950-''u196D''u1970-''u1974''u1980-''u19AB''u19C1-''u19C7''u1A00-''u1A16''u1A20-''u1A54''u1AA7''u1B05-''u1B33''u1B45-''u1B4B''u1B83-''u1BA0''u1BAE''u1BAF''u1BBA-''u1BE5''u1C00-''u1C23''u1C4D-''u1C4F''u1C5A-''u1C7D''u1CE9-''u1CEC''u1CEE-''u1CF1''u1CF5''u1CF6''u1D00-''u1DBF''u1E00-''u1F15''u1F18-''u1F1D''u1F20-''u1F45''u1F48-''u1F4D''u1F50-''u1F57''u1F59''u1F5B''u1F5D''u1F5F-''u1F7D''u1F80-''u1FB4''u1FB6-''u1FBC''u1FBE''u1FC2-''u1FC4''u1FC6-''u1FCC''u1FD0-''u1FD3''u1FD6-''u1FDB''u1FE0-''u1FEC''u1FF2-''u1FF4''u1FF6-''u1FFC''u2071''u207F''u2090-''u209C''u2102''u2107''u210A-''u2113''u2115''u2119-''u211D''u2124''u2126''u2128''u212A-''u212D''u212F-''u2139''u213C-''u213F''u2145-''u2149''u214E''u2183''u2184''u2C00-''u2C2E''u2C30-''u2C5E''u2C60-''u2CE4''u2CEB-''u2CEE''u2CF2''u2CF3''u2D00-''u2D25''u2D27''u2D2D''u2D30-''u2D67''u2D6F''u2D80-''u2D96''u2DA0-''u2DA6''u2DA8-''u2DAE''u2DB0-''u2DB6''u2DB8-''u2DBE''u2DC0-''u2DC6''u2DC8-''u2DCE''u2DD0-''u2DD6''u2DD8-''u2DDE''u2E2F''u3005''u3006''u3031-''u3035''u303B''u303C''u3041-''u3096''u309D-''u309F''u30A1-''u30FA''u30FC-''u30FF''u3105-''u312D''u3131-''u318E''u31A0-''u31BA''u31F0-''u31FF''u3400-''u4DB5''u4E00-''u9FCC''uA000-''uA48C''uA4D0-''uA4FD''uA500-''uA60C''uA610-''uA61F''uA62A''uA62B''uA640-''uA66E''uA67F-''uA69D''uA6A0-''uA6E5''uA717-''uA71F''uA722-''uA788''uA78B-''uA78E''uA790-''uA7AD''uA7B0''uA7B1''uA7F7-''uA801''uA803-''uA805''uA807-''uA80A''uA80C-''uA822''uA840-''uA873''uA882-''uA8B3''uA8F2-''uA8F7''uA8FB''uA90A-''uA925''uA930-''uA946''uA960-''uA97C''uA984-''uA9B2''uA9CF''uA9E0-''uA9E4''uA9E6-''uA9EF''uA9FA-''uA9FE''uAA00-''uAA28''uAA40-''uAA42''uAA44-''uAA4B''uAA60-''uAA76''uAA7A''uAA7E-''uAAAF''uAAB1''uAAB5''uAAB6''uAAB9-''uAABD''uAAC0''uAAC2''uAADB-''uAADD''uAAE0-''uAAEA''uAAF2-''uAAF4''uAB01-''uAB06''uAB09-''uAB0E''uAB11-''uAB16''uAB20-''uAB26''uAB28-''uAB2E''uAB30-''uAB5A''uAB5C-''uAB5F''uAB64''uAB65''uABC0-''uABE2''uAC00-''uD7A3''uD7B0-''uD7C6''uD7CB-''uD7FB''uF900-''uFA6D''uFA70-''uFAD9''uFB00-''uFB06''uFB13-''uFB17''uFB1D''uFB1F-''uFB28''uFB2A-''uFB36''uFB38-''uFB3C''uFB3E''uFB40''uFB41''uFB43''uFB44''uFB46-''uFBB1''uFBD3-''uFD3D''uFD50-''uFD8F''uFD92-''uFDC7''uFDF0-''uFDFB''uFE70-''uFE74''uFE76-''uFEFC''uFF21-''uFF3A''uFF41-''uFF5A''uFF66-''uFFBE''uFFC2-''uFFC7''uFFCA-''uFFCF''uFFD2-''uFFD7''uFFDA-''uFFDC";
var rx = RegExp("^[''s" + pL + "]+$");
// TEST:
document.body.innerHTML = "'abåcå': " + rx.test("abåcå") + "<br/>";
document.body.innerHTML += "'ab c': " + rx.test("ab c") + "<br/>";
document.body.innerHTML += "'abc': " + rx.test("abc") + "<br/>";
document.body.innerHTML += "'abc%$': " + rx.test("abc%$");

正则表达式是使用 RegExp 构造函数动态构建的,因为模式的一部分是一个变量。一旦您将来需要增强正则表达式模式(例如防止将字符串与前导/尾随空格匹配以及不允许双连续空格时),这很方便。